我不明白。我有一个数据库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
部分是可选的,如果他们已经是一个用户?
也许您可以将GRANT
语句限制为只有通过这种特定的身份验证方法(这里是:password)登录的用户。这至少是CREATE USER
语句的情况,我认为这里应该是类似的…
详情请在本页搜寻auth_option
很可能是MySQL复制问题