【问题标题】:MySQL Create an user with privileges drops itselfMySQL 创建具有权限的用户会自行删除
【发布时间】:2013-04-29 01:08:48
【问题描述】:

我需要有关如何创建具有删除自身可能性的新用户的帮助...

CREATE USER 'AdminPS'@'localhost' IDENTIFIED BY PASSWORD  '*CC3DA61A4716581A6A62EE83E5F4119D8C0B5D23';

GRANT ALL ON Database.* TO 'AdminPS'@'localhost';
GRANT DROP USER 'AdminPS'@'localhost' TO 'AdminPS'@'localhost';

【问题讨论】:

    标签: mysql sql-grant sql-drop


    【解决方案1】:

    你只需要替换最后一行:

    CREATE USER 'AdminPS@localhost' IDENTIFIED BY PASSWORD '*CC3DA61A4716581A6A62EE83E5F4119D8C0B5D23';
    GRANT ALL ON Database.* TO 'AdminPS@localhost';
    GRANT CREATE USER ON *.* TO 'AdminPS@localhost';
    

    【讨论】:

      【解决方案2】:

      GRANT Syntax 中所述:

      表 13.1。 GRANT 和 REVOKE 的许可权限

      +-----------------+-------------------------------- ------------+ | 特权 | 含义 | +-----------------+-------------------------------- ------------+ : : : | CREATE USER |启用CREATE USERDROP USER、| | | RENAME USERREVOKE ALL PRIVILEGES | : : : +-----------------+-------------------------------- ------------+ : : : | DROP |使数据库、表和视图成为 | | |下降 | : : : +-----------------+-------------------------------- ------------+

      因此,您需要授予CREATE USER 权限,而不是DROP

      【讨论】:

      • 如果您只需要允许用户能够删除自己,您可以编写一个存储过程(以提升的权限运行)来验证权限并代表用户自己执行DROP
      【解决方案3】:

      您需要使用 WITH GRANT OPTION 创建用户。

      e.g.: GRANT ALL ON Database.* TO 'AdminPS'@'localhost' WITH GRANT OPTION;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-16
        • 1970-01-01
        • 2011-03-07
        • 1970-01-01
        • 2013-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多