文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL 的 GRANT和REVOKE 命令

2015-04-03 22:08

关注

MySQL 的 GRANT和REVOKE 命令

MySQL 的 GRANT和REVOKE 命令



GRANT - 授权

将指定 操作对象 的指定 操作权限 授予指定的 用户; 发出该 GRANT语句的可以是数据库管理员,也可以是该数据库对象的创建者;

  1. 查询

    • 查看用户自己权限

      SHOW GRANTS;

    • 查看其他用户权限

      SHOW GRANTS FOR "user"@"host";

    Tips: host 可以使用通配符 %;如 "user"@"%", "user"@"192.168.0.%";

  2. 授权

    • 语法

      GRANT 权限 ON 数据库对象 TO 用户 [WITH GRANT OPTION];

    • 栗子

      • 授予 super用户所有权限

        GRANT ALL [PRIVILEGES] ON . TO "user"@"%";

      • 授予用户 INSERT 权限

        CREATE INSERT ON db_name.* TO "user"@"%" IDENTIFIED BY "newpasswd";

      • 授予用户 SELECT, UPDATE, DELETE 权限

        GRANT SELECT, UPDATE, DELETE ON db_name.* TO "user"@"localhost"

  3. 刷新

    FLUSH PRIVILEGES;

Tips:


REVOKE - 回收授权

Tips:


GRANT允许的特权


实例

用户操作

  1. 创建用户

    CREATE USER "user"@"%" IDENTIFIED BY "newpasswd";

  2. 重命名用户

    CREATE USER "old_user"@"%" TO "new_user"@"%";

  3. 删除用户

    1. 查询用户

      SELECT user,host FROM mysql.user;

    2. 删除用户

      DROP USER "user"@"host";

查看和刷新权限

授权与取消授权

  1. 用法

    GRANT 权限 ON 数据库对象 TO 用户 [WITH GRANT OPTION];   -- 授权
    REVOKE 权限 ON 数据库对象 FROM 用户 [CASCADE | RESTRICT];   -- 取消授权
    

    Tips: REVOKE 跟 GRANT 的语法差不多,只需要把关键字 TO 换成 FROM 即可

  2. 栗子

    • 添加权限(和已有权限合并,不会覆盖已有权限)

      -- 添加普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利
      grant select, insert, update, delete on testdb.* to common_user@"%"
      
      -- 添加数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限
      grant create, alter, drop on testdb.* to developer@"192.168.0.%";
      
      -- 添加操作 MySQL 外键权限
      grant references on testdb.* to developer@"192.168.0.%";
      
      -- 添加操作 MySQL 临时表权限
      grant create temporary tables on testdb.* to developer@"192.168.0.%";
      
      -- 添加操作 MySQL 索引权限
      grant index on testdb.* to developer@"192.168.0.%";
      
      -- 添加操作 MySQL 视图、查看视图源代码 权限
      grant create, show view on testdb.* to developer@"192.168.0.%";
      
    • 删除授权

      -- 删除普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利
      revoke select, insert, update, delete on testdb.* from common_user@"%"
      
      -- 删除数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限
      revoke create, alter, drop on testdb.* from developer@"192.168.0.%";
      
      -- 删除操作 MySQL 外键权限
      revoke references on testdb.* from developer@"192.168.0.%";
      
      -- 删除操作 MySQL 临时表权限
      revoke create temporary tables on testdb.* from developer@"192.168.0.%";
      
      -- 删除操作 MySQL 索引权限
      revoke index on testdb.* from developer@"192.168.0.%";
      
      -- 删除操作 MySQL 视图、查看视图源代码 权限
      revoke create, show view on testdb.* from developer@"192.168.0.%";
      
    • DBA 权限管理

      -- 普通 DBA 管理某个 MySQL 数据库的权限
      grant all [privileges] on testdb to dba@"localhost"
      
      -- 高级 DBA 管理 MySQL 中所有数据库的权限。
      grant all on *.* to dba@"localhost"
      
    • 细密度授权

      -- 作用在整个 MySQL 服务器上
      grant select on *.* to dba@localhost;   -- dba 可以查询 MySQL 中所有数据库中的表
      grant all    on *.* to dba@localhost;   -- dba 可以管理 MySQL 中的所有数据库
      
      -- 作用在单个数据库上
      grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。
      
      -- 作用在单个数据表上
      grant select, insert, update, delete on testdb.t_orders to dba@localhost;
      
      -- 作用在表中的列上
      grant select(id, username, sex) on testdb.t_user to dba@localhost;
      
    • 权限传播与收回

      -- 授权 dba 查询权限,并且可以将这些权限 grant 给其他用户
      grant select on testdb.* to dba@localhost with grant option;
      
      -- 收回 dba 和其传播用户的权限
      revoke select on testdb.* from dba@localhost cascade;
      

    Tips: 权限发生改变后, 需要重新加载一下权限,将权限信息从内存中写入数据库;



Reference

原文地址:https://www.cnblogs.com/librarookie/archive/2022/04/18/16160252.html

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯