首页 > 数据库 >2.Mysql的角色管理

2.Mysql的角色管理

时间:2023-01-08 22:35:49浏览次数:54  
标签:roles 角色 管理 read app GRANT ROLE Mysql localhost

1.Mysql角色

  Mysql从8.0开始就支持roles,这个在Oracle可是一直存在的,然后Mysql终于在8.0上开始支持了。

2.什么是Mysql的roles?

  Mysql的roles说直白就是一堆权限的集合,然后给这个集合称为roles,roles可以对账户分配一组特权,并提供一种方便授权个人特权的替代方案,然后roles特点:

  • Roles可以被创建也可以被删除
  • Roles可以被授权权限,也可以被撤销权限
  • 可以向用户账号授权角色,可以从用户账户撤销角色
  • 一个账户的active roles 可以从授予该账户的角色中选择,并且可以在该账户的会话期间更改 

3. Roles的语法

    3.1 创建和删除role    

1.CREATE ROLE [IF NOT EXISTS] role [, role ] ...
 e.g:
    CREATE ROLE 'admin', 'developer';
    CREATE ROLE 'webapp'@'localhost';

2. DROP ROLE [IF EXISTS] role [, role ] ...
  e.g:
    DROP ROLE 'admin', 'developer';
    DROP ROLE 'webapp'@'localhost';
  

 3.2 给role授权和撤销权限 

1.GRANT 'role1', 'role2' TO 'user1'@'localhost', 'user2'@'localhost';
  GRANT SELECT ON world.* TO 'role3';

2.REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';
  REVOKE 'role1', 'role2' FROM 'user1'@'localhost', 'user2'@'localhost';
  REVOKE SELECT ON world.* FROM 'role3';

  3.3  SET DEFAULT ROLE specifies which account roles are active by default.

 SET DEFAULT ROLE 'admin', 'developer' TO 'joe'@'10.0.0.1';

    3.4  SET ROLE changes the active roles within the current session. 

SET ROLE DEFAULT;
SET ROLE 'role1', 'role2';
SET ROLE ALL;
SET ROLE ALL EXCEPT 'role1', 'role2';

   3.5 The CURRENT_ROLE() function displays the active roles within the current session 

mysql> SELECT CURRENT_ROLE();
+-------------------+
| CURRENT_ROLE()    |
+-------------------+
| `r1`@`%`,`r2`@`%` |
+-------------------+
mysql> SET ROLE 'r1'; SELECT CURRENT_ROLE();
+----------------+
| CURRENT_ROLE() |
+----------------+
| `r1`@`%`       |
+----------------+

4. 创建Role模版

1. 创建role
CREATE ROLE 'app_developer', 'app_read', 'app_write';
2. 为Role授权一些权限(集合) GRANT ALL ON app_db.* TO 'app_developer'; GRANT SELECT ON app_db.* TO 'app_read'; GRANT INSERT, UPDATE, DELETE ON app_db.* TO 'app_write';
3.创建用户 CREATE USER 'dev1'@'localhost' IDENTIFIED BY 'dev1pass'; CREATE USER 'read_user1'@'localhost' IDENTIFIED BY 'read_user1pass'; CREATE USER 'read_user2'@'localhost' IDENTIFIED BY 'read_user2pass'; CREATE USER 'rw_user1'@'localhost' IDENTIFIED BY 'rw_user1pass';
4.为用户授权role 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';

 

 

标签:roles,角色,管理,read,app,GRANT,ROLE,Mysql,localhost
From: https://www.cnblogs.com/zmc60/p/17035589.html

相关文章

  • ubuntu20下mysql5.7数据库修改密码
    --找到mysql配置文件修改/etc/mysql/mysql.conf.d/mysqld.cnf#加上下面的可以不要密码登录#skip-grant-tables#skip-networking然后重启mysql服务servicemysqlr......
  • mysql定时事件设置
    //查看事件调度器是否开启SHOWVARIABLESLIKE'event_scheduler';//开启事件调度器SETGLOBALevent_scheduler=ON;//创建定时事件DELIMITER$$CREATEEVENTIFNOTE......
  • C语言图书信息管理系统[2023-01-08]
    C语言图书信息管理系统[2023-01-08]3、图书信息管理系统(1)图书基本信息包括:分类号、图书编号、书名、作者、出版日期、ISBN、定价、馆藏数、借阅数等。(2)通过菜单选择......
  • C++教学创新大赛信息管理系统[2023-01-08]
    C++教学创新大赛信息管理系统[2023-01-08]2022级《计算思维综合实践I》课程任务书及相关要求适用班级:计算机类2022级、大数据2022级、人工智能2022级一、课程目标1.【......
  • 学习笔记——Maven的核心概念之仓库、坐标;maven的依赖管理;Maven中统一管理版本号;Maven
    2023-01-08一、Maven的核心概念1、仓库(1)仓库的分类①本地仓库:为当前计算机提供maven服务②远程仓库:为其他计算机提供maven服务a.私服:架设在当前局域网环境下,为当前局......
  • Spring事务管理
    一个转账的问题创建表 添加数据 实体类逆向生成实体类,并添加无参构造、带参构造、toStringpackagecom.qzcsbj.bean;publicclassAccount{privatelon......
  • MySQL8免安装版下载安装与配置(linux)
    一、前言基于Linux平台的MySQL安装文件有三个版本,分别是RPM软件、GenericBinaries软件包、源码包,具体介绍如下:①RPM软件包是一种Linux平台下的安装文件,通过相关命令可以......
  • SpringBoot——日志管理
    SpringBoot在所有内部日志中使用CommonsLogging,但是默认配置也提供了对常用日志的支持,如:JavaUtilLogging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用控制台......
  • P13_协同工作_小程序权限管理的概念以及成员管理的两个方面
    协同工作了解权限管理需求在中大型的公司里,人员的分工非常仔细:同一个小程序项目,一般会有不同岗位、不同角色的员工同时参与设计与开发。此时出于管理需要,我们迫切需要......
  • 教务管理系统建设
    一、设计理念   以师生服务为中心:从以教师为中心向以学生为中心。   全面适配教学改革:从教学事务管理向人才培养全过程服务转变。  智能大数据:从经验主义依......