role可以看做一个权限的集合,这个集合有一个统一的名字role名。可以给多个账户统一的某个role的权限权限的修改直接通过修改role来实现,不需要每个账户一个一个的grant权限,方便运维和管理。role可以创建、删除、修改并作用到他管理的账户上。(和Oracle数据库中的角色差不多)

官方文档:

https://dev.mysql.com/doc/refman/8.0/en/roles.html

官方给的案例:

--创建3个角色:

mysql> CREATE ROLE 'app_developer', 'app_read', 'app_write';

--给每个角色授权:

mysql> GRANT ALL ON app_db.* TO 'app_developer';    --:app_db给这个角色所有权限

mysql> GRANT SELECT ON app_db.* TO 'app_read';      --:app_db给这个角色只读权限

mysql> GRANT INSERT, UPDATE, DELETE ON app_db.* TO 'app_write';   --:app_db给这个角色写权限

--给每个用户授予不同的角色:

GRANT 'app_developer' TO 'dev1'@'localhost';

GRANT 'app_read' TO 'read_user1'@'localhost', 'read_user2'@'localhost';

GRANT 'app_read', 'app_write' TO 'rw_user1'@'localhost';

--当然,还可以针对某个表的权限 做角色,如:

mysql> grant select on testdb.emp to app_read;

2、强制定义角色:mandatory_roles

通过在mandatory_roles系统变量的值做设置,可以指定角色为强制性的。服务器将强制角色视为授予所有用户,因此不需要显式地授予任何帐户。

在配置文件中,添加:

[mysqld]

mandatory_roles='role1,role2@localhost,r3@%.example.com'

或者,在命令行中执行:

SET PERSIST mandatory_roles = 'role1,role2@localhost,r3@%.example.com';

例子:

①:首先建一个角色并授权:

mysql> CREATE ROLE app_developer;

mysql> GRANT ALL ON test.* TO app_developer;

--然后我们把这个参数设成这个角色:(意思是:凡是创建的用户指定了@'%'用户可以在任意客户端登录数据库,默认创建用户会拥有app_developer角色)

mysql> SET PERSIST mandatory_roles = 'app_developer@%';

--然后我们创建一个用户 并不赋权

mysql> create user test_user@'%' identified by 'test_user';

mysql> FLUSH PRIVILEGES;

--使用新用户登录数据库,然后可以直接set这个role

mysql> set role app_developer;

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| test               |

+--------------------+

2 rows in set (0.00 sec)

注意:当一个角色被set了之后是不可以被删除的

3、检查用户的权限或角色,如:

mysql> SHOW GRANTS FOR zhang@'%';

+-----------------------------------+

| Grants for zhang@%                |

+-----------------------------------+

| GRANT USAGE ON *.* TO `zhang`@`%` |

+-----------------------------------+

1 row in set (0.00 sec)

--扩展显示,把授予角色的内容也显示出来:

mysql> SHOW GRANTS FOR 'zhang'@'%' USING 'app_developer';

+-------------------------------------------------+

| Grants for zhang@%                              |

+-------------------------------------------------+

| GRANT USAGE ON *.* TO `zhang`@`%`               |

| GRANT ALL PRIVILEGES ON `test`.* TO `zhang`@`%` |

+-------------------------------------------------+

2 rows in set (0.00 sec)

4、移除角色:

REVOKE role FROM user;

或者,将角色的权限移除:

REVOKE INSERT, UPDATE, DELETE ON app_db.* FROM 'app_write';

5、删除角色

DROP ROLE 'app_read', 'app_write';

mysql各种role含义_MySQL8.0——role功能相关推荐

  1. mysql root远程访问权限_mysql8.0 Server在Windows平台中的安装、初始化和远程访问设置...

    mysql8.0 server安装 1.下载mysql 8.0 可以到mysql官网下载 https://dev.mysql.com/downloads/mysql 或者如下地址 mysql-8.0. ...

  2. mysql安装mac 压缩包_MySQL8.0安装详解(图文版)

    点击关注 不迷路 MySQL8.0.22安装 MySQL8.0自2016年发布至今,已经更加的稳定和被大家接受,如今已经有很多公司放弃了5.7.x的版本,开始使用上了MySQL8.0. 大势所趋.本系 ...

  3. mysql workbench 修改密码_MySql8.0以上版本正确修改ROOT密码的方法

    部署环境: 安装版本red hat Cent 7.0 MYSQL 版本 8.0.2.0 成功部署完毕后出现故障情况: 1.      正常启动MYSQL服务后,敲Linux中root账户和密码进入不去 ...

  4. mysql超详细教程_MySQL8.0.23安装超详细教程

    前言 最近在做一个人脸识别的项目,需要用数据库保存学生信息与前段交互. MySQL的优点 1.mysql性能卓越,服务稳定,很少出现异常宕机. 2.mysql开放源代码且无版权制约,自主性及使用成本低 ...

  5. MySQL如何安装离线_mysql8.0.2离线安装配置方法图文教程

    离线安装MySQL_8.0.2方法,供大家参考,具体内容如下 从MySQL官网中获取了下面这个压缩包: 解压之后变成这个样子: 文件里面是这个样子: 下面开始了,请注意. 第一大步:配置my.ini文 ...

  6. mysql 当天创建分区表_mysql8.0 定时创建分区表记录 每天定时创建下一天的分区表...

    因单表数据太大, 需要表按时间分区 分区字段 pay_out_date 按天分 要求自动创建 1. 创建分区表 MYSQL的分区字段,必须包含在主键字段内 常见错误提示 错误提示:#1503 A PR ...

  7. mysql配置文件改密码_mysql8.0 安装教程(自定义配置文件,密码方式已修改)

    下载zip安装包: MySQL8.0 For Windows zip包下载地址:https://dev.mysql.com/downloads/file/?id=476233,进入页面后可以不登录.后 ...

  8. mysql 8安装方法_Mysql8.0.17安装教程【推荐】

    1.因为系统重装 又双叒叕开始了装myql数据库 下载安装包 https://dev.mysql.com/downloads/mysql/ 2.解压到你想安装的地方 3.解压完是没有图红色框中的文件的 ...

  9. mysql数据库压缩图片_MySQL8.0.20压缩版本安装教程图片加文字详解

    1.MySQL下载地址: http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-Cluster-8.0/ 2.解压以后放在一个文件夹里面,创建my.ini配置文件: ...

最新文章

  1. android用户界面之菜单(Menu)教程实例汇总
  2. 生产型机器学习已经没那么困难了?
  3. 【Qt】打开现有 Qt 项目 ( 打开已存在的项目 | 运行打开的项目 )
  4. 最佳实践: 勿在 Servlet 中实现 SingleThreadModel
  5. 表的插入、更新、删除、合并操作_15_ 按照默认值更新表
  6. 从数据的角度解析计算机的发展,2017计算机知识考前冲刺试题及答案
  7. Keilc的中断号计算方法
  8. js中字符串操作函数
  9. 百度发起机器阅读理解竞赛,提供中文数据集,获胜团队奖10万
  10. 机器学习入门|线性回归(二)
  11. Java魔法堂:JVM的运行模式
  12. Ubuntu PPPOE拨号
  13. 打代码太苦,你需要一个鼓励师
  14. 微信发布2018年各年龄段用户使用数据报告
  15. Windows远程提示“终端服务器超出了最大允许连接”
  16. 性能测试场景设计深度解析
  17. MATLAB知识小结
  18. Podfile语法参考(译)
  19. html检测正则表达式,正则表达式在线测试工具
  20. 金田新材冲刺上交所:拟募资15.6亿 方文彬家族控制62%股权

热门文章

  1. 获取 本地/网 络图片尺寸
  2. serialport中Cannot set headers after they are sent to the client
  3. python [:,:,4:5]与 [:,:,4]的区别
  4. C++ switch用法(break的问题)
  5. 浅谈大数据的标签管理
  6. jQuery eq()方法 =》加载页面时单选框默认选中
  7. java 静态方法 调用非静态方法_java静态方法调用非静态方法
  8. 少儿机器人编程入门先学什么
  9. 基于像控点三维模型几何精纠正处理几种常用方法
  10. 计算机显示休眠状态进不去,如何让电脑进入不休眠状态,福利在这里,电脑系统怎样才能进入不休眠状态...