如何向用户授予数据库权限

如何向用户授予数据库权限

我在 mysql 5.1 中创建了用户并赋予其 ALL 权限,详细信息如下,

mysql> show GRANTS FOR test;
+-------------------------------------------------------------+
| Grants for test@%                                           |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION |
| GRANT ALL PRIVILEGES ON `tt`.* TO 'test'@'%'                |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)

但是 show databases 并没有显示 mysql 上的数据库。它只显示如下所示的内容。如何为用户“test”授予其他 DB 表的权限?

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+

当我尝试以用户测试身份使用 mysql DB 时出现错误:

mysql> use mysql;
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

答案1

在mysql.user表中,您可以为不同的用户指定不同的权限。如果您使用查询浏览器,您可以工具->mysql 管理员,然后转到用户并创建具有权限的新用户或更改其权限。

更改权限后,请不要忘记运行“FLUSH PRIVILEGES”,否则您的更改将不会产生影响。

答案2

您未以用户 test@% 身份登录,因为您拥有第一个匹配的匿名用户帐户 ''@'localhost'。删除 ''@'localhost' 或创建 'test'@'localhost'

您还可以运行mysql_secure_installation,它将为您处理很多此类问题。

相关内容