我不明白这个。我有一个名为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
部分是可选的。
INSERT
、UPDATE
和DELETE
的能力(这似乎表明他们只允许从数据中读取(SELECT
)?这对我来说似乎是一个非常糟糕的想法。 - Ken WhiteSHOW GRANTS FOR ken@'%'
在GRANT语句之前和之后分别给出了什么? - miken32