[英]Cannot grant privileges to a user using root on mysql
我正在尝试向 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' ;
但是我收到了这个奇怪的错误:
Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
我尝试与其他用户一起制作 GRANT ALL PRIVILEGES 的其他模式,并且似乎正在工作。 任何想法?
仅当授予将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' ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.