欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解MySQL8的新特性ROLE

 更新時間:2020年11月20日 09:42:00   作者:蔣樂興的技術(shù)隨筆  
這篇文章主要介紹了詳解MySQL8的新特性ROLE的相關(guān)資料,幫助大家更好的理解和使用MySQL8,感興趣的朋友可以了解下

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

  假設(shè)你是一個職業(yè)素養(yǎng)良好的DBA比較同時又比較注重權(quán)限管理的話;可能遇到過這樣的問題,數(shù)據(jù)庫中有多個開發(fā)人員的賬號;有一天要建

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

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

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

【機(jī)智的MySQL開發(fā)】

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

  1): 創(chuàng)建角色

create role devgroup;

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

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

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

  2): 給角色賦權(quán)

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

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

  3):創(chuàng)建用戶并把角色的權(quán)限賦給它

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):測試剛創(chuàng)建的用戶是否可以登錄

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 用戶當(dāng)成角色賦給剛才的tom用戶

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

  2):用戶tom用戶檢察一下自己的權(quán)限

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的權(quán)限已經(jīng)被套上去了、既然都是root用戶的權(quán)限了我們來刪除一個tempdb庫看一下吧!

  3): 刪庫

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

  看起來沒有權(quán)限刪除這個庫呀!事實上是MySQL-8默認(rèn)并不會激活role,關(guān)于是否激活role是由activate_all_roles_on_login這個參數(shù)控制的

  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的詳細(xì)內(nèi)容,更多關(guān)于MySQL8 新特性ROLE的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySQL版oracle下scott用戶建表語句實例

    MySQL版oracle下scott用戶建表語句實例

    這篇文章主要給大家介紹了關(guān)于MySQL版oracle下scott用戶建表語句的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • MySQL中having和where的區(qū)別及應(yīng)用詳解

    MySQL中having和where的區(qū)別及應(yīng)用詳解

    這篇文章主要給大家詳細(xì)介紹了MySQL中having和where的區(qū)別以及他們的使用方法,文中有相關(guān)的代碼示例,具有一定的參考價值,需要的朋友可以參考下
    2023-06-06
  • mysql外鍵的三種關(guān)系實例詳解

    mysql外鍵的三種關(guān)系實例詳解

    這篇文章主要介紹了mysql外鍵的三種關(guān)系,結(jié)合實例形式詳細(xì)分析了mysql外鍵多對一、多對多、一對一3種關(guān)系及相關(guān)使用技巧,需要的朋友可以參考下
    2020-01-01
  • Windows下安裝MySQL 5.7.17壓縮版中遇到的坑

    Windows下安裝MySQL 5.7.17壓縮版中遇到的坑

    最近發(fā)現(xiàn)原來好端端的MySQL突然間不能用了,無奈只能重新下載了最新的MySQL 5.7.17 Community 壓縮版 for Windows 64-bit。但在安裝過程中遇到了一些意外的問題,通過查找相關(guān)資料也解決了,所以想著總結(jié)出來,方便需要的朋友們可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • MYSQL數(shù)據(jù)庫主從同步設(shè)置的實現(xiàn)步驟

    MYSQL數(shù)據(jù)庫主從同步設(shè)置的實現(xiàn)步驟

    本文主要介紹了MYSQL數(shù)據(jù)庫主從同步設(shè)置的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • mysql聯(lián)合索引的使用規(guī)則

    mysql聯(lián)合索引的使用規(guī)則

    本文主要介紹了mysql聯(lián)合索引的具體使用,結(jié)合實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 防止MySQL重復(fù)插入數(shù)據(jù)的三種方法

    防止MySQL重復(fù)插入數(shù)據(jù)的三種方法

    在MySQL進(jìn)行數(shù)據(jù)插入操作時,總是會考慮是否會插入重復(fù)數(shù)據(jù),之前的操作都是先根據(jù)主鍵或者唯一約束條件進(jìn)行查詢,有就進(jìn)行更新沒有就進(jìn)行插入。代碼反復(fù)效率低下。
    2020-09-09
  • phpmyadmin報錯:#2003 無法登錄 MySQL服務(wù)器的解決方法

    phpmyadmin報錯:#2003 無法登錄 MySQL服務(wù)器的解決方法

    通過phpmyadmin連接mysql數(shù)據(jù)庫時提示:“2003 無法登錄 MySQL服務(wù)器”。。。很明顯這是沒有啟動mysql服務(wù),右擊我的電腦-管理-找到服務(wù),找到mysql啟動一下
    2012-04-04
  • 淺析MySQL的WriteSet并行復(fù)制

    淺析MySQL的WriteSet并行復(fù)制

    這篇文章主要介紹了淺析MySQL的WriteSet并行復(fù)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下
    2020-11-11
  • Mysql?InnoDB引擎中的數(shù)據(jù)頁結(jié)構(gòu)詳解

    Mysql?InnoDB引擎中的數(shù)據(jù)頁結(jié)構(gòu)詳解

    這篇文章主要為大家介紹了Mysql?InnoDB引擎中的數(shù)據(jù)頁結(jié)構(gòu)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評論