【问题标题】:Cannot grant privileges to a user using root on mysql无法在mysql上使用root授予用户权限
【发布时间】:2017-11-23 17:17:38
【问题描述】:

我正在尝试向 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 的其他模式,并且似乎正在工作。有什么想法吗?

【问题讨论】:

    标签: mysql sql-grant


    【解决方案1】:

    只有当授权引用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' ;
    

    【讨论】:

    • 就像它运行一样,但是当我使用用户 myuser 进入时,我看不到任何架构:s 就像它没有权限一样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    相关资源
    最近更新 更多