电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL 角色(role)功能介紹

瀏覽:2日期:2023-10-03 16:38:05
前言:

上篇文章,我們介紹了 MySQL 權限管理相關知識。當數據庫實例中存在大量的庫或用戶時,權限管理將會變得越來越繁瑣,可能要頻繁進行權限變更。MySQL 8.0 新增了 role 功能,使得權限管理更加方便,本篇文章我們來看下 8.0 下的 role 功能。

1. role 簡介

role 角色功能對于 Oracle 數據庫來說不算是什么特殊,在 Oracle 中經常被用到。MySQL 8.0 版本終于新增了 role 功能,為數據庫用戶權限管理提供了一種新思路。

role 可以看做一個權限的集合,這個集合有一個統一的名字 role 名。可以給多個數據庫用戶授予同個 role 的權限,權限變更可直接通過修改 role 來實現,不需要每個用戶一個一個的去變更,方便運維和管理。role 可以創建、刪除、修改并作用到它管理的用戶上。

下面我們具體來體驗下 role 角色功能:

# 創建rolemysql> create role ’dev_role’;Query OK, 0 rows affected (0.15 sec)# 給role授予權限mysql> grant select on db1.* to ’dev_role’@’%’;Query OK, 0 rows affected (0.12 sec)# 查看role的權限mysql> show grants for ’dev_role’@’%’;+-------------------------------------------+| Grants for dev_role@% |+-------------------------------------------+| GRANT USAGE ON *.* TO `dev_role`@`%` || GRANT SELECT ON `db1`.* TO `dev_role`@`%` |+-------------------------------------------+# 創建用戶 并賦予角色權限mysql> create user ’dev1’@’%’ identified by ’123456’;Query OK, 0 rows affected (0.68 sec)mysql> grant ’dev_role’ to ’dev1’@’%’;Query OK, 0 rows affected (0.38 sec)# 查看用戶權限mysql> show grants for ’dev1’@’%’;+------------------------------------+| Grants for dev1@% |+------------------------------------+| GRANT USAGE ON *.* TO `dev1`@`%` || GRANT `dev_role`@`%` TO `dev1`@`%` |+------------------------------------+2 rows in set (0.63 sec)# 使用dev1用戶登錄root@localhost ~]# mysql -udev1 -p123456mysql> show databases;+--------------------+| Database |+--------------------+| information_schema |+--------------------+1 row in set (0.34 sec)mysql> select CURRENT_ROLE();+----------------+| CURRENT_ROLE() |+----------------+| NONE |+----------------+1 row in set (0.59 sec)

什么情況?貌似和我們想象不同,賦予用戶某個角色權限后,該用戶并沒有獲得相應權限。

出現上述情況的原因是,在用戶會話中,授予該用戶的角色處于非活動狀態。只有授予的角色在會話中處于活動狀態時,該用戶才擁有此角色的權限,要確定當前會話中哪些角色處于活動狀態,可以使用 CURRENT_ROLE() 函數。

# 使用 set default role 命令激活角色mysql> SET DEFAULT ROLE ALL TO dev1;Query OK, 0 rows affected (0.77 sec)# 重新登錄 發現權限正常root@localhost ~]# mysql -udev1 -p123456mysql> select CURRENT_ROLE();+----------------+| CURRENT_ROLE() |+----------------+| `dev_role`@`%` |+----------------+1 row in set (0.57 sec)mysql> show databases;+--------------------+| Database |+--------------------+| db1|| information_schema |+--------------------+2 rows in set (1.05 sec)

除了使用 set default role 命令激活角色外,還可以修改系統變量 activate_all_roles_on_login ,該變量決定是否自動激活 role ,默認為 OFF 即不自動激活,建議將該變量改為 ON ,這樣以后賦予角色給新用戶后就不需要再手動激活了。

# 查看 activate_all_roles_on_login 變量mysql> show variables like ’activate_all_roles_on_login’;+-----------------------------+-------+| Variable_name | Value |+-----------------------------+-------+| activate_all_roles_on_login | OFF |+-----------------------------+-------+1 row in set (1.53 sec)# 啟用該變量 先動態啟用 之后可以將此參數加入my.cnf配置文件中mysql> set global activate_all_roles_on_login = on;Query OK, 0 rows affected (0.50 sec)# 之后角色就會自動激活mysql> create user ’dev2’@’%’ identified by ’123456’;Query OK, 0 rows affected (0.68 sec)mysql> grant ’dev_role’ to ’dev2’@’%’;Query OK, 0 rows affected (0.38 sec)root@localhost ~]# mysql -udev2 -p123456mysql> select CURRENT_ROLE();+----------------+| CURRENT_ROLE() |+----------------+| `dev_role`@`%` |+----------------+1 row in set (0.57 sec)mysql> show databases;+--------------------+| Database |+--------------------+| db1|| information_schema |+--------------------+2 rows in set (1.05 sec) 2. role 相關操作

上面我們介紹了創建角色及給用戶授予角色權限,關于 role 相關操作還有很多,我們接著來看下。

# 變更角色權限mysql> grant select on db2.* to ’dev_role’@’%’;Query OK, 0 rows affected (0.33 sec)# 擁有該角色的用戶 重新登錄后權限也會對應變化root@localhost ~]# mysql -udev1 -p123456mysql> show databases;+--------------------+| Database |+--------------------+| db1|| db2|| information_schema |+--------------------+3 rows in set (2.01 sec)# 回收角色權限mysql> revoke SELECT ON db2.* from ’dev_role’@’%’;Query OK, 0 rows affected (0.31 sec)# 撤銷用戶的角色mysql> revoke ’dev_role’@’%’ from ’dev1’@’%’;Query OK, 0 rows affected (0.72 sec)mysql> show grants for ’dev1’@’%’;+----------------------------------+| Grants for dev1@%|+----------------------------------+| GRANT USAGE ON *.* TO `dev1`@`%` |+----------------------------------+1 row in set (1.06 sec)# 刪除角色 (刪除角色后 對應的用戶也會失去該角色的權限)mysql> drop role dev_role;Query OK, 0 rows affected (0.89 sec)

我們還可以通過 mandatory_roles 變量來配置強制性角色。使用強制性角色,服務器會為全部的用戶戶默認賦予該角色,而不需要顯示執行授予角色。可以使用 my.cnf 文件或者使用 SET PERSIST 進行配置,例如:

# my.cnf 配置[mysqld]mandatory_roles=’dev_role’# set 更改變量SET PERSIST mandatory_roles = ’dev_role’;

需要注意的是,配置在 mandatory_roles 中的角色不能撤銷其權限,也不能刪除。

總結:

關于 role 角色相關知識,簡單總結幾點如下:

role 是一個權限的集合,可以被賦予不同權限。 開啟 activate_all_roles_on_login 變量,才可以自動激活角色。 一個用戶可以擁有多個角色,一個角色也可以授予多個用戶。 角色權限變化會應用到對應用戶。 刪除角色,則擁有此角色的用戶也會喪失此角色的權限。 可設置強制性角色,使得所有用戶都擁有此角色的權限。 角色管理和用戶管理相似,只是角色不能用于登錄數據庫。

以上就是MySQL 角色(role)功能介紹的詳細內容,更多關于MySQL 角色(role)功能的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 锌合金压铸-铝合金压铸厂-压铸模具-冷挤压-誉格精密压铸 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 旋振筛_不锈钢旋振筛_气旋筛_旋振筛厂家—新乡市大汉振动机械有限公司 | 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | pH污水传感器电极,溶解氧电极传感器-上海科蓝仪表科技有限公司 | 国际高中-国际学校-一站式择校服务-远播国际教育 | 无缝方管|无缝矩形管|无缝方矩管|无锡方管厂家 | 地埋式垃圾站厂家【佳星环保】小区压缩垃圾中转站转运站 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 超声波分散机-均质机-萃取仪-超声波涂料分散设备-杭州精浩 | 99文库_实习生实用的范文资料文库站| 塑料瓶罐_食品塑料瓶_保健品塑料瓶_调味品塑料瓶–东莞市富慷塑料制品有限公司 | 创客匠人-让IP变现不走弯路| 超声波乳化机-超声波分散机|仪-超声波萃取仪-超声波均质机-精浩机械|首页 | 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 分轨 | 上传文件,即刻分离人声和伴奏 | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | 汽车水泵_汽车水泵厂家-瑞安市骏迪汽车配件有限公司 | 27PR跨境电商导航 | 专注外贸跨境电商| 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 铸铁平台,大理石平台专业生产厂家_河北-北重机械 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 光栅尺厂家_数显表维修-苏州泽升精密机械 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | 发光字|标识设计|标牌制作|精神堡垒 - 江苏苏通广告有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 |