为什么'被'某些授权命令是强制性的?

时间:2015-05-15 17:13:00

标签: mysql sql database-administration grant

我不明白这一点。我有一个数据库my_database和一个表tablename。我有一个用户ken,他只具有对数据库的只读权限。此用户已设置密码,人们远程使用此用户名。我想在tablename上给他们一些权限。

这不起作用:

mysql> grant SELECT, INSERT, UPDATE, DELETE on my_database.tablename to 'ken'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

但这样做:

mysql> grant SELECT, INSERT, UPDATE, DELETE on my_database.tablename to 'ken'@'%' identified by password '<existing password hash>';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

为什么呢?如果他们已经是用户,我认为identified by部分是可选的?

2 个答案:

答案 0 :(得分:0)

也许只有当GRANT语句已通过此特定身份验证方法(此处为:密码)登录时,才能将CREATE USER语句限制为用户。这至少是auth_option语句的情况,我认为它应该类似于......

有关详细信息,请在this页面上搜索public class Message{ public int AuthorId; string Body; public virtual Author Author { get; set; } }

答案 1 :(得分:0)

很可能是MySQL复制问题。