首頁  >  文章  >  資料庫  >  mysql資料庫角色的實例詳解

mysql資料庫角色的實例詳解

WBOY
WBOY轉載
2022-06-08 17:28:452092瀏覽

本篇文章為大家帶來了關於mysql的相關知識,其中主要介紹了關於資料庫角色的相關內容,可以透過角色來實現給使用者授予權限,方便管理擁有相同權限的用戶,下面一起來看一下,希望對大家有幫助。

mysql資料庫角色的實例詳解

推薦學習:mysql影片教學

#mysql資料庫的權限的管理,單純的給某一個使用者直接加權限。這樣做有個比較麻煩的地方,就是我們的用戶比較多的時候如果這些用戶的權限還都是一樣的那麼操作起來未免顯得有些冗餘。那我們可以透過角色來實現給使用者授予權限。

角色的理解

# 引入角色的目的是方便管理擁有相同權限的使用者 。 適當的權限設定,可以確保資料的安全性,這是至關重要的

#建立角色

   

建立角色使用CREATE ROLE 語句,語法如下:

   

CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]...
角色名稱的命名規則和用戶名類似。若 host_name省略,預設為% , role_name不可省略 ,不可為 空。

練習:我們現在需要創建一個經理的角色,就可以用下面的程式碼:     
CREATE ROLE 'manager'@'localhost';

效果如下圖

#給角色賦予權限

#建立角色之後,預設這個角色是沒有任何權限的,我們需要授權給角色。給角色授權的語法結構是:
GRANT privileges ON table_name TO 'role_name'[@'host_name'];

# 範例:為manager角色授予查看dbtest1資料庫下所有表的權限

##查看角色的權限

#    

#只要你建立了一個角色,系統就會自動給你一個「 USAGE 」權限,意思是連接登入資料庫的權限 

 

回收角色的權限

###角色授權後,可以對角色的權限進行維護,並對權限進行新增或撤銷。新增權限使用GRANT語句,與角色 授權相同。撤銷角色或角色權限使用REVOKE語句。 ###    #########修改了角色的權限,會影響擁有該角色的帳號的權限。 ### #########撤銷角色權限的SQL語法如下###     ###
REVOKE privileges ON tablename FROM 'rolename';
######現在我們給manager在加上一個delete的權限,然後把這個權限再收回#### ##########################刪除角色######       #########當我們需要重新整合業務的時候,可能就需要對先前創建的角色進行清理,刪除一些不會再使用的角色。刪除角色的操作很簡單,只要掌握文法結構就好了。 ###        ###
DROP ROLE role [,role2]...
######注意, 如果你刪除了角色,那麼使用者也失去了透過這個角色所獲得的所有權限 。 ###         ###

给用户赋予角色          

角色创建并授权后,要赋给用户并处于 激活状态 才能发挥作用。给用户添加角色可使用GRANT语句,语 法形式如下:          

GRANT role [,role2,...] TO user [,user2,...];

在上述语句中,role代表角色,user代表用户。可将多个角色同时赋予多个用户,用逗号隔开即可。           

例子:创建一个用户叫wang5 然后赋予角色manager,操作如下          

         

用wang5登录并操作

 

赋予wang5角色manager  注意这个是通过root用户实现的

 

然后通过wang5登录查看数据库

此时还是看不到dbtest1,这是怎么回事呢?原来我们需要激活角色

激活角色

方式1:使用set default role 命令激活角色

SET DEFAULT ROLE ALL TO 'kangshifu'@'localhost';

 现在激活manager角色

然后再通过wang5用户登录查看

激活方式2:将activate_all_roles_on_login设置为ON          

 默认情况:

 设置 SET GLOBAL activate_all_roles_on_login=ON;

这条 SQL 语句的意思是,对 所有角色永久激活 。运行这条语句之后,用户才真正拥有了赋予角色的所有 权限。            

那么现在wang5已经被赋予manager角色,我们知道manager角色只是有select的权限。我们做如下操作          

 撤销用户的角色

REVOKE role FROM user;

比如撤销 wang5的manager角色,通过root用户          

         

 再通过wang5登录看效果

推荐学习:mysql视频教程

以上是mysql資料庫角色的實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除