jpg*_*z18 9 mysql sql database privileges sql-grant
我正在尝试向 mysql 上的用户授予显式权限,并且正在执行此操作(对于已创建的用户)
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, SHOW DATABASES,
CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER
ON mydatabase.*
TO 'myuser'@'localhost' ;
Run Code Online (Sandbox Code Playgroud)
但我收到这个奇怪的错误:
DB GRANT 和 GLOBAL PRIVILEGES 的使用不正确
我尝试与其他用户一起尝试其他模式,并授予所有特权,并且似乎有效。任何想法?
Bil*_*win 21
某些权限仅在授予引用ON *.*schema.table 时才有意义。
手册页https://dev.mysql.com/doc/refman/5.7/en/grant.html列出了所有可用的权限,并根据是否可以在不同级别授予它们对global、database、table进行了注释的范围。
该SHOW DATABASES特权只能在全局级别授予。
所以你必须这样做:
GRANT SHOW DATABASES
ON *.*
TO 'myuser'@'localhost' ;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER,
CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER
ON mydatabase.*
TO 'myuser'@'localhost' ;
Run Code Online (Sandbox Code Playgroud)