婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解MySQL8的新特性ROLE

詳解MySQL8的新特性ROLE

熱門標簽:百度地圖圖標標注中心 芒果電話機器人自動化 南通自動外呼系統軟件 日照旅游地圖標注 信陽穩定外呼系統運營商 石家莊電商外呼系統 湖南人工外呼系統多少錢 申請外呼電話線路 廣東人工電話機器人

【MySQL的ROLE解決了什么問題】

  假設你是一個職業素養良好的DBA比較同時又比較注重權限管理的話;可能遇到過這樣的問題,數據庫中有多個開發人員的賬號;有一天要建

  一個新的schema,如果你希望之前所有的賬號都能操作這個schema下的表的話,在mysql-8.0之前你要對第一個賬號都單獨的賦一次權。

  mysql-8.0.x所權限抽象了出來用ROLE來表示,當你為ROLE增加新的權限的時候,與這個ROLE關聯的所有用戶的權限也就一并變化了;針對

  上面提到的場景在mysql-8.0.x下只要一條SQL就解決了。 

【機智的MySQL開發】

  MySQL引進ROLE用了一個非常機智的做法,既然ROLE是一堆權限的象征,這東西在MySQL里面本來就有呀!它就是USER呀。

  1): 創建角色

create role devgroup;

  查看mysql.user表真會被MySQL的機智給嚇到

select user,host from mysql.user;                              
+------------------+-----------+
| user       | host   |
+------------------+-----------+
| devgroup     | %     |
| backup      | 127.0.0.1 |
| mysql.sys    | localhost |
| root       | localhost |
+------------------+-----------+

  說好的role事實上只是一個user呀!

  2): 給角色賦權

grant all on tempdb.* to devgroup;                             
Query OK, 0 rows affected (0.07 sec)

  和操作用戶比起來是一樣一樣的!

  3):創建用戶并把角色的權限賦給它

create user tom@'127.0.0.1' identified by '123456';                     
Query OK, 0 rows affected (0.09 sec)

grant devgroup to tom@'127.0.0.1';                             
Query OK, 0 rows affected (0.09 sec)

  4):測試剛創建的用戶是否可以登錄

mysql -h127.0.0.1 -P3306 -utom -p123456                     
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show grants;                                        
+-------------------------------------------+
| Grants for tom@127.0.0.1         |
+-------------------------------------------+
| GRANT USAGE ON *.* TO `tom`@`127.0.0.1`  |
| GRANT `devgroup`@`%` TO `tom`@`127.0.0.1` |
+-------------------------------------------+
2 rows in set (0.00 sec)

【角色和用戶只是一個硬幣的兩面】 

  如果你還是覺得“角色”和“用戶”是兩個不一樣的東西、那我只能是出大招了

  1): root@127.0.0.1 用戶當成角色賦給剛才的tom用戶

grant root@'127.0.0.1' to tom@'127.0.0.1';                         
Query OK, 0 rows affected (0.04 sec)

  2):用戶tom用戶檢察一下自己的權限

show grants;
+--------------------------------------------------------------+
| Grants for tom@127.0.0.1                   |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `tom`@`127.0.0.1`           |
| GRANT `devgroup`@`%`,`root`@`127.0.0.1` TO `tom`@`127.0.0.1` |
+--------------------------------------------------------------+
2 rows in set (0.00 sec)

  可以看到root@127.0.0.1的權限已經被套上去了、既然都是root用戶的權限了我們來刪除一個tempdb庫看一下吧!

  3): 刪庫

drop database tempdb;                                    
ERROR 1044 (42000): Access denied for user 'tom'@'127.0.0.1' to database 'tempdb'

  看起來沒有權限刪除這個庫呀!事實上是MySQL-8默認并不會激活role,關于是否激活role是由activate_all_roles_on_login這個參數控制的

  4): 開啟activate_all_roles_on_login

set @@global.activate_all_roles_on_login=1;
Query OK, 0 rows affected (0.00 sec)

   5): 重新登錄一次tom再試著刪除一下tempdb庫

mysql -h127.0.0.1 -P3306 -utom -p123456                     
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use tempdb;
Database changed
mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
| tempdb       |
+--------------------+
5 rows in set (0.01 sec)

mysql> drop database tempdb;                                    
Query OK, 0 rows affected (0.09 sec)

以上就是詳解MySQL8的新特性ROLE的詳細內容,更多關于MySQL8 新特性ROLE的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL 8.0用戶和角色管理原理與用法詳解
  • MySQL 角色(role)功能介紹

標簽:天津 公主嶺 阿里 惠州 牡丹江 呼和浩特 沈陽 合肥

巨人網絡通訊聲明:本文標題《詳解MySQL8的新特性ROLE》,本文關鍵詞  詳解,MySQL8,的,新特性,新,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解MySQL8的新特性ROLE》相關的同類信息!
  • 本頁收集關于詳解MySQL8的新特性ROLE的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 鄂托克旗| 临邑县| 太保市| 晋江市| 怀安县| 西华县| 子洲县| 安福县| 阳谷县| 巴里| 丹阳市| 衡山县| 罗田县| 阳高县| 临湘市| 涿鹿县| 兴国县| 乌鲁木齐市| 华宁县| 蚌埠市| 双流县| 日喀则市| 固镇县| 门源| 双辽市| 垦利县| 兴化市| 瑞金市| 马尔康县| 将乐县| 青海省| 巴林左旗| 安吉县| 抚松县| 安福县| 南溪县| 周至县| 犍为县| 巴楚县| 凯里市| 谷城县|