我不明白这一点。我有一个数据库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
部分是可选的?
答案 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复制问题。