mysql创建角色集_mysql8之新增角色
mysql8在之前的版本中并没有角色(role)的概念,在角色概念出现之前,mysql对用户授权是一个用户起码一条授权记录,假如有多个用户需要同样的权限,那只能增加多个授权记录,同理,如果需要对多个相同权限用户进行权限调整,只能逐个操作。现在则可以简化这一流程,只需调整角色权限即可,不再需要对每个用户做维护。
图示变化:
一、角色的日常使用
1、创建角色,和创建用户一样,默认host后缀是%,可以看出角色默认是无密码的
mysql> create role 'read_role';
mysql> select host,user,authentication_string from mysql.user where user='read_role';
+------+-----------+-----------------------+
| host | user | authentication_string |
+------+-----------+-----------------------+
| % | read_role| |
+------+-----------+-----------------------+
2、角色设置权限,和用户授权一样
mysql> grant select on db_kenyon.* to 'read_role';
mysql> show grants for 'read_role';
+--------------------------------------------------+
| Grants for read_role@% |
+--------------------------------------------------+
| GRANT USAGE ON *.* TO `read_role`@`%` |
| GRANT SELECT ON `db_kenyon`.* TO `read_role`@`%` |
+--------------------------------------------------+
3、关联用户角色
mysql> create user 'read_usr1' identified by 'Eric@2020';
mysql> create user 'read_usr2' identified by 'Eric@2020';
mysql> grant 'read_role' to 'read_usr1','read_usr2';
mysql> select *from mysql.role_edges;
+-----------+-----------+---------+-----------+-------------------+
| FROM_HOST | FROM_USER | TO_HOST | TO_USER | WITH_ADMIN_OPTION |
+-----------+-----------+---------+-----------+-------------------+
| % | read_role | % | read_usr1 | N |
| % | read_role | % | read_usr2 | N |
+-----------+-----------+---------+-----------+-------------------+
mysql> show grants for 'read_usr1' using 'read_role';
+--------------------------------------------------+
| Grants for read_usr1@% |
+--------------------------------------------------+
| GRANT USAGE ON *.* TO `read_usr1`@`%` |
| GRANT SELECT ON `db_kenyon`.* TO `read_usr1`@`%` |
| GRANT `read_role`@`%` TO `read_usr1`@`%` |
+--------------------------------------------------+
4、 测试登录,需要设置默认角色,否则会报错
[root@ ~]# mysql -uread_usr1 db_kenyon -p
Enter password:
ERROR 1044 (42000): Access denied for user 'read_usr1'@'%' to database 'db_kenyon'
--设置默认角色,返回管理员窗口
mysql> set default role 'read_role' to 'read_usr1';
mysql> select * from mysql.default_roles;
+------+-----------+-------------------+-------------------+
| HOST | USER | DEFAULT_ROLE_HOST | DEFAULT_ROLE_USER |
+------+-----------+-------------------+-------------------+
| % | read_usr1 | % | read_role |
+------+-----------+-------------------+-------------------+
mysql> \q
Bye
[root@ ~]# mysql -uread_usr1 -pEric@2020
mysql> select current_role();
+-----------------+
| current_role() |
+-----------------+
| `read_role`@`%` |
+-----------------+
5、回收权限
mysql> revoke select on db_kenyon.* from 'read_role';
--用户对应的权限相应被回收
mysql> show grants for 'read_usr1';
+------------------------------------------+
| Grants for read_usr1@% |
+------------------------------------------+
| GRANT USAGE ON *.* TO `read_usr1`@`%` |
| GRANT `read_role`@`%` TO `read_usr1`@`%` |
+------------------------------------------+
6、删除角色
mysql> drop role 'read_role'@'%';
二、总结:
1、新增角色模块可以简化并统一管理有相同权限的用户,方便管理人员维护
2、mysql库里新增了两张系统表defalut_role与role_edges用来查看和管理角色属性,前者是系统中默认的角色,后者是用户与角色的配置关系,角色表存放在user表中和用户信息混用
3、新增函数current_role()来查看当前用户的角色属性,相比较oracle略繁琐
4、和普通用户不同,新增的角色默认是无密码的,账户是锁定(account locked)的
5、mysql8版本的很多功能越来越趋向oracle,新增角色也是之一
mysql创建角色集_mysql8之新增角色相关推荐
- Mysql Cluster集群实现高可用
MySQL集群搭建实现高可用 本节所讲内容: l MySQL 集群 概述 l 实战:MySQL 集群 搭建 1 MySQL集群概述和安装环境 MySQL Cluster是MySQL适合于分布式计算环 ...
- 京东如何基于Vitess管理大型MySQL实例集群
本文根据dbaplus社群第203期线上分享整理而成 讲师介绍 王云博 京东数据库高级研发工程师 2014年加入京东,一直致力于数据库运维自动化的发展: 2018年专注于京东弹性数据库研发.运维工作. ...
- Step By Step 搭建 MySql MHA 集群
关于MHA MHA(Master High Availability)是一款开源的mysql高可用程序,目前在mysql高可用方面是一个相对成熟的解决方案.MHA 搭建的前提是MySQL集群中已 ...
- mysql pxc集群介绍_PXC集群的概述及搭建
PXC集群的概述及搭建 PXC集群的简介 Percona XtraDB Cluster(下文简称PXC集群)提供了MySQL高可用的一种实现方法.PXC集群以节点组成(推荐至少3节点,便于故障恢复,后 ...
- 从零搭建MySQL数据库集群(三):搭建混合集群综合应用
集群的讲解分为三篇 (一):主从复制集群.PXC集群 https://blog.csdn.net/weixin_43934607/article/details/102762570 (二):MyCat ...
- mysql副本集_mongodb分片+副本集总览
由于51cto的编辑不太好用,这是有道上的文档http://note.youdao.com/noteshare?id=aedd53c99b4a97aebbe9af136104113a 在 MongoD ...
- mysql创建角色并授权给用户
mysql创建角色并授权给用户 CREATE DATABASE testdb; 创建角色 -- 创建角色 CREATE ROLE 'admin'; -- 语法 CREATE ROLE [IF NOT ...
- mysql 数据库集群搭建:(四)pacemaker管理三台maxscale集群,搭建mariadb读写分离中间层集群...
为什么80%的码农都做不了架构师?>>> <mysql 数据库集群搭建:(一)VirtualBox中多台CentOS虚拟机间和windows主机间互通以及访问互联网设置& ...
- MySQL主从集群原理+实战
目录如下 MySQL主从集群原理+实战 背景 随着公司业务的发展,对数据库的要求越来越高,以前的单机MySQL肯定是玩不转了,亟需升级成MySQL集群,这是一个公司在业务发展时不得不面临的问题 就单机 ...
最新文章
- AI正从“感知智能”走向“认知智能”
- VC代码的编写和调试---编写易于调试的VC代码
- wcf服务和寄主的关系
- Apache Kafka:大数据的实时处理时代
- cmd测试cuda安装_安装:anaconda+cuda+pytorch+pycharm
- python不满足条件重新输入_如果Python中不满足条件,则拒绝用户输入
- 更换锁定计算机图片,电脑锁屏图片怎么设置
- 数据结构笔记(十一)串
- 如何往linux上面上传东西
- php100视频教程下载(全集),下载地址链接(整理后包涵解压密码)
- 安国主控,U盘量产,起死回生
- IDEA2020版本下载、安装
- Cisco Packet Tracer中配置链路聚合
- 为什么逍遥子说,双11已成全球的社会大协同?
- 美国3D理发师可剪出球星脸发型
- Android系统打不开,安卓手机打不开pdf文件怎么解决?
- matlab中ode指令,在Matlab中使用ODE选择步长
- UI库——muse-ui
- java连接twitter登录,twitter应用程序只认证java android与twitter4j
- unity5.6.5适配Android P刘海屏,两侧去黑边