【问题标题】:Grant custom permissions to user in mysql在mysql中授予用户自定义权限
【发布时间】:2015-12-14 15:41:37
【问题描述】:

如何创建具有特定用户权限的用户,例如,我有一个名为 mydb 的数据库,它有这些表:users, contacts, messages,我想创建一个名为 app_admin 的用户,其内容如下权限:

  • 创建、更新和删除表
  • 在表格中插入、更新、选择和删除数据

为了做到这一点,我必须做什么?,是否有可能在一行中完成?

我知道如何授予大部分权限并在一行中创建用户(感谢 Richard St-Cyr):

GRANT ALTER, CREATE, DELETE, DROP, INSERT, SELECT, UPDATE ON db.* TO 'app_admin'@localhost IDENTIFIED BY '_my_securePass';
FLUSH PRIVILEGES;

但是我不希望用户能够删除数据库。

【问题讨论】:

    标签: mysql privileges


    【解决方案1】:

    可以,也可以试试这个例子

    GRANT ALL PRIVILEGES ON mydb.* TO 'app_admin'@'%' WITH GRANT OPTION
    

    【讨论】:

      【解决方案2】:

      是的,这可以通过指定权限列表而不是 ALL 在 1 行中完成。有关权限列表,请参阅http://dev.mysql.com/doc/refman/5.7/en/grant.html。

      GRANT ALTER, CREATE, DELETE, DROP, INSERT, SELECT, UPDATE ON db.* TO 'app_admin'@localhost IDENTIFIED BY '_my_securePass';
      FLUSH PRIVILEGES;
      

      【讨论】:

      • 你想用我列出的权限做一个例子吗?
      • 不会DROP 让用户删除数据库吗?
      • 没错。用户可以DROP数据库或数据库中的任何对象。 DROP 用于数据库和其中的对象。
      • 但我不希望用户能够删除数据库,只删除表......我该怎么做?
      • 我不知道您如何实现这一点,除非授予特定表的权限。也许其他人会给你答案。
      猜你喜欢
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      相关资源
      最近更新 更多