国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

聊一聊MySQL角色(Role)功能

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

[[395250]]

前言:

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

1. role 簡介

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

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

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

  1. # 創建role 
  2. mysql> create role 'dev_role'
  3. Query OK, 0 rows affected (0.15 sec) 
  4.  
  5. # 給role授予權限 
  6. mysql> grant select on db1.* to 'dev_role'@'%'
  7. Query OK, 0 rows affected (0.12 sec) 
  8.  
  9. # 查看role的權限 
  10. mysql> show grants for 'dev_role'@'%'
  11. +-------------------------------------------+ 
  12. | Grants for dev_role@%                     | 
  13. +-------------------------------------------+ 
  14. GRANT USAGE ON *.* TO `dev_role`@`%`      | 
  15. GRANT SELECT ON `db1`.* TO `dev_role`@`%` | 
  16. +-------------------------------------------+ 
  17.  
  18. # 創建用戶 并賦予角色權限 
  19. mysql> create user 'dev1'@'%' identified by '123456'
  20. Query OK, 0 rows affected (0.68 sec) 
  21.  
  22. mysql> grant 'dev_role' to 'dev1'@'%'
  23. Query OK, 0 rows affected (0.38 sec) 
  24.  
  25. # 查看用戶權限 
  26. mysql> show grants for 'dev1'@'%'
  27. +------------------------------------+ 
  28. | Grants for dev1@%                  | 
  29. +------------------------------------+ 
  30. GRANT USAGE ON *.* TO `dev1`@`%`   | 
  31. GRANT `dev_role`@`%` TO `dev1`@`%` | 
  32. +------------------------------------+ 
  33. rows in set (0.63 sec) 
  34.  
  35. # 使用dev1用戶登錄 
  36. root@localhost ~]# mysql -udev1 -p123456 
  37.  
  38. mysql> show databases; 
  39. +--------------------+ 
  40. Database           | 
  41. +--------------------+ 
  42. | information_schema | 
  43. +--------------------+ 
  44. 1 row in set (0.34 sec) 
  45.  
  46. mysql> select CURRENT_ROLE(); 
  47. +----------------+ 
  48. | CURRENT_ROLE() | 
  49. +----------------+ 
  50. | NONE           | 
  51. +----------------+ 
  52. 1 row in set (0.59 sec) 

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

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

  1. # 使用 set default role 命令激活角色 
  2. mysql> SET DEFAULT ROLE ALL TO dev1; 
  3. Query OK, 0 rows affected (0.77 sec) 
  4.  
  5. # 重新登錄 發現權限正常 
  6. root@localhost ~]# mysql -udev1 -p123456 
  7.  
  8. mysql> select CURRENT_ROLE(); 
  9. +----------------+ 
  10. | CURRENT_ROLE() | 
  11. +----------------+ 
  12. | `dev_role`@`%` | 
  13. +----------------+ 
  14. 1 row in set (0.57 sec) 
  15.  
  16. mysql> show databases; 
  17. +--------------------+ 
  18. Database           | 
  19. +--------------------+ 
  20. | db1                | 
  21. | information_schema | 
  22. +--------------------+ 
  23. rows in set (1.05 sec) 

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

  1. # 查看 activate_all_roles_on_login 變量 
  2. mysql> show variables like 'activate_all_roles_on_login'
  3. +-----------------------------+-------+ 
  4. | Variable_name               | Value | 
  5. +-----------------------------+-------+ 
  6. | activate_all_roles_on_login | OFF   | 
  7. +-----------------------------+-------+ 
  8. 1 row in set (1.53 sec) 
  9.  
  10. # 啟用該變量 先動態啟用 之后可以將此參數加入my.cnf配置文件中 
  11. mysql> set global activate_all_roles_on_login = on
  12. Query OK, 0 rows affected (0.50 sec) 
  13.  
  14. # 之后角色就會自動激活 
  15. mysql> create user 'dev2'@'%' identified by '123456'
  16. Query OK, 0 rows affected (0.68 sec) 
  17.  
  18. mysql> grant 'dev_role' to 'dev2'@'%'
  19. Query OK, 0 rows affected (0.38 sec) 
  20.  
  21. root@localhost ~]# mysql -udev2 -p123456 
  22.  
  23. mysql> select CURRENT_ROLE(); 
  24. +----------------+ 
  25. | CURRENT_ROLE() | 
  26. +----------------+ 
  27. | `dev_role`@`%` | 
  28. +----------------+ 
  29. 1 row in set (0.57 sec) 
  30.  
  31. mysql> show databases; 
  32. +--------------------+ 
  33. Database           | 
  34. +--------------------+ 
  35. | db1                | 
  36. | information_schema | 
  37. +--------------------+ 
  38. rows in set (1.05 sec) 

2. role 相關操作

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

  1. # 變更角色權限 
  2. mysql> grant select on db2.* to 'dev_role'@'%'
  3. Query OK, 0 rows affected (0.33 sec) 
  4.  
  5. # 擁有該角色的用戶 重新登錄后權限也會對應變化 
  6. root@localhost ~]# mysql -udev1 -p123456 
  7.  
  8. mysql> show databases; 
  9. +--------------------+ 
  10. Database           | 
  11. +--------------------+ 
  12. | db1                | 
  13. | db2                | 
  14. | information_schema | 
  15. +--------------------+ 
  16. rows in set (2.01 sec) 
  17.  
  18. # 回收角色權限 
  19. mysql> revoke SELECT ON db2.* from 'dev_role'@'%'
  20. Query OK, 0 rows affected (0.31 sec) 
  21.  
  22. # 撤銷用戶的角色 
  23. mysql> revoke 'dev_role'@'%' from 'dev1'@'%'
  24. Query OK, 0 rows affected (0.72 sec) 
  25.  
  26. mysql> show grants for 'dev1'@'%'
  27. +----------------------------------+ 
  28. | Grants for dev1@%                | 
  29. +----------------------------------+ 
  30. GRANT USAGE ON *.* TO `dev1`@`%` | 
  31. +----------------------------------+ 
  32. 1 row in set (1.06 sec) 
  33.  
  34. # 刪除角色 (刪除角色后 對應的用戶也會失去該角色的權限) 
  35. mysql> drop role dev_role; 
  36. Query OK, 0 rows affected (0.89 sec) 

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

  1. # my.cnf 配置 
  2. [mysqld] 
  3. mandatory_roles='dev_role' 
  4.  
  5. set 更改變量 
  6. SET PERSIST mandatory_roles = 'dev_role'

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

總結:

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

 

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

 

責任編輯:武曉燕 來源: MySQL技術
相關推薦

2020-10-15 06:56:51

MySQL排序

2017-12-22 10:13:21

NFS功能Flex

2022-12-26 08:13:54

子查詢MySQL

2025-02-18 00:00:05

vue后端權限

2021-07-30 10:33:57

MySQL觸發器數據

2021-03-01 18:37:15

MySQL存儲數據

2023-09-22 17:36:37

2020-05-22 08:16:07

PONGPONXG-PON

2021-01-28 22:31:33

分組密碼算法

2018-06-07 13:17:12

契約測試單元測試API測試

2022-11-01 08:46:20

責任鏈模式對象

2021-01-29 08:32:21

數據結構數組

2023-07-06 13:56:14

微軟Skype

2023-05-15 08:38:58

模板方法模式

2021-08-04 09:32:05

Typescript 技巧Partial

2018-11-29 09:13:47

CPU中斷控制器

2022-08-08 08:25:21

Javajar 文件

2019-02-13 14:15:59

Linux版本Fedora

2021-02-06 08:34:49

函數memoize文檔

2020-08-12 08:34:16

開發安全We
點贊
收藏

51CTO技術棧公眾號

91精品丝袜国产高跟在线| 亚洲视频 欧洲视频| 亚洲欧美日韩专区| 99视频国产精品| 浅井舞香一区二区| 97在线资源在| 三级亚洲高清视频| 国内精品美女在线观看| 欧美日韩美女一区二区| 天天爱天天做色综合| 久久97超碰色| 99久久精品免费看国产一区二区三区| 99视频有精品高清视频| 国内成人精品视频| 欧美大片网址| 国产精品免费观看在线| 国产精品久久久久久久久久辛辛| 亚洲精品日产精品乱码不卡| 欧洲一区二区日韩在线视频观看免费| 久久亚洲精品人成综合网| 欧美日韩国产一区在线| 在线免费观看成人网| 韩国女主播一区二区三区| 亚洲mv在线观看| 五月天亚洲综合情| 91午夜国产| 欧美在线日韩| 一级毛片在线| 亚洲一区二区精品久久av| 国产xxxxx| 午夜欧美大尺度福利影院在线看| 免费黄色网页| 色综合一区二区三区| av在线二区| 日韩一级大片在线| 韩国成人二区| 精品久久久久久久久久久久包黑料| 免费不卡视频| 91精品久久久久久蜜臀| 国产亚洲精品久久久优势| 日韩久久精品网| 久久久999精品视频| 欧美 日韩 亚洲 一区| 国产一区二区精品久久99| 中国一级黄色录像| 国产精品影视在线观看| 日韩成人午夜影院| 欧美韩国亚洲| 精品成人私密视频| 男人的天堂在线视频免费观看 | 99国产精品白浆在线观看免费| 国产成人精品一区二区免费看京 | 成人免费自拍视频| 国产影视精品一区二区三区| 日韩亚洲精品视频| 警花av一区二区三区| 亚洲大胆人体视频| av久久网站| 18一19gay欧美视频网站| 午夜a一级毛片亚洲欧洲| 日本精品久久中文字幕佐佐木| 在线一区二区三区视频| 日韩av一卡二卡| 天堂在线中文网官网| 91精品国产综合久久精品性色| 国内在线视频| 国产精品毛片大码女人| 污污网站免费观看| 91丨九色丨国产丨porny| 亚洲精品福利在线| 国产精品69xx| 久久成人精品一区二区三区| 国产日韩欧美一区在线| 久久精品视频16| 国产精品视频一二三区| 天堂在线第六区| 欧美日韩一区高清| 欧美香蕉视频| 91中文字幕一区| 麻豆高清免费国产一区| av之家在线观看| 在线视频你懂得一区二区三区| h网站在线免费观看| 在线观看亚洲一区| 国产激情视频在线| 日韩欧美国产三级电影视频| 1024在线看片你懂得| 国产精品久久久久国产a级| 在线观看日韩av电影| 97在线国产视频| 欧美色图在线观看| av在线成人| 国产精品激情| 久久综合99re88久久爱| 中文字幕在线观看第一页| 中文字幕一区电影| 综合久久一区| 久久网站免费视频| 中文字幕色av一区二区三区| 国产丝袜精品丝袜| 国产成人啪精品视频免费网| 久久亚洲二区| 天堂中文在线资| 久久精品99无色码中文字幕 | 久久丁香综合五月国产三级网站| www国产黄色| 欧美日韩免费不卡视频一区二区三区| 男人天堂999| 自拍偷拍视频在线| 国产精品视频在线看| 成人在线观看免费网站| 国产精品一区=区| 成人免费电影视频| 在线免费观看黄色| 2020国产精品视频| 成人免费视频国产在线观看| 黄色软件在线观看| 色播久久人人爽人人爽人人片视av| 99热在线成人| 欧美日韩影院| 97中文字幕| 久久国产精品网站| av电影一区二区| 日韩大片欧美大片| 穿情趣内衣被c到高潮视频| 亚洲黄色av女优在线观看| 免费高清在线一区| 97成人资源| 日本香蕉视频在线观看| 在线播放日韩精品| 91在线播放网址| 天堂av一区| 成片免费观看视频| 成人激情视频小说免费下载| 欧美日韩国产精品专区| 午夜国产精品视频| 黄色小网站在线观看| 亚洲国产欧洲综合997久久| 亚洲精品国产精品乱码不99按摩 | 国产亚洲福利社区| 日韩一区二区三| 久久精品免费观看| 韩国久久久久久| 男女av免费观看| 欧美一区二区三区精品电影| 香蕉av福利精品导航| 在线成人国产| 亚洲欧洲高清| 欧美日韩怡红院| 国产欧美亚洲视频| 日韩精品最新网址| 91视频你懂的| 成人一级毛片| 成人高潮aa毛片免费| 国产在线精品91| 国产精品视频一| 欧美年轻男男videosbes| 国产一区二区剧情av在线| 日韩欧美一级| 日本国产在线| 亚洲欧美日韩精品在线| 久久成年人视频| 欧美日韩精品在线观看| 男人的j进女人的j一区| 视频精品一区二区三区| 免费一级在线观看| 四虎精品欧美一区二区免费| 8x拔播拔播x8国产精品| 欧美视频精品在线观看| 国产高清不卡一区| 国产精品美女久久久久久不卡| 国产视频精选在线| www.国产在线视频| 成人性生交大片免费看视频直播 | 国产精品∨欧美精品v日韩精品| 欧美最猛性xxxxx直播| 国产99精品在线观看| 怕怕欧美视频免费大全| 国产福利在线播放麻豆| 成人午夜视频免费在线观看| 91九色对白| 久久精品视频在线观看| 色久优优欧美色久优优| 波多野结衣中文字幕一区| 色综合久久网| av成人免费看| 91露出在线| 成人满18在线观看网站免费| 免费国产一区| 欧美一区二区.| 精品小视频在线| 粉嫩av一区二区三区免费野| 国产成人小视频| 欧美日韩国产色综合一二三四| 91精品xxx在线观看| 三级毛片在线免费看| 116极品美女午夜一级| 久久视频在线观看中文字幕| 777777777亚洲妇女| 日韩电影中文字幕av|