繁体   English   中英

无法在 mysql 上向使用 root 的用户授予权限

[英]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列出了所有可用的特权,并根据是否可以在不同级别授予它们,对globaldatabasetable进行了注释。范围。

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' ;

我有一个奇怪的事情是“root”用户有权授予权限,但我仍然不得不使用用户“admin”来代替。

使用root,我得到:

SQL Error [1045] [28000]: Access denied for user 'root'@'%' (using password: YES)

这可能只是设置,但是当我在 DBeaver 的 GUI 中查找它时(连接 --> 用户 --> 授予 --> 查看授予),他们都检查了所有权限,但我仍然无法授予权限使用“root”用户。

也许它可以帮助另一个奇怪的数据库设置的人。

行政:

在此处输入图像描述

根:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM