《MySQL數據庫》MySQL用戶賦權


用戶權限管理:

1. 創建用戶和設置密碼:

create user test@'localhost' IDENTIFIED by 'test';            

重點解釋一下@'localhost' 在這個語句中的作用(白名單的作用:就是設置哪些網段的人可以才有權限)

test@'10.0.0.%' 分配10.0.0.XXX/24為白名單(24就是255.255.255.0)
test@'%' 分配全部地址為白名單(只要能ping通) 
test@'10.0.0.200' 分配唯一地址為白名單 
test@'localhost' 分配自己為白名單
test@'db02' 分配主機名為白名單
test@'10.0.0.5%' 分配網段白名單

創建完用戶需要執行:FLUSH PRIVILEGES; 作者不執行也可以賦權。

修改密碼:alter user test@'10.0.0.%' identified by '456';

 

2. 刪除用戶:

drop user test;

 

3. 授權

grant select, insert, update, delete on work_db.*  to test@'%';     

 

4. 查詢用戶權限:

show privileges;          -- 展示mysql權限。

其中 Grant option 權限特殊,是給別人授權的權限,語法為原授權語句后加 with Grant option。

show grants for test;   -- 查看賦權語句。

select * from mysql.db where user='test'      -- 查詢賦權的實際情況(數據庫級別)

select * from mysql.user where user='test'   -- 查詢賦權的實際情況(全局 *.*)

select * from mysql.tables_priv where user='test'   -- 查詢賦權的實際情況(表級別)

select * from mysql.columns_priv where user='test'   -- 查詢賦權的實際情況(列級別)

 

5. mysql賦權級別

5.1.全局層級

全局權限適用於一個給定服務器中的所有數據庫。這些權限存儲在mysql.user表中。GRANT ALL ON *.* to 和REVOKE ALL ON *.* from 只授予和撤銷全局權限。

 

5.2.數據庫層級

數據庫權限適用於一個給定數據庫中的所有目標。這些權限存儲在mysql.db和mysql.host表中。GRANT ALL ON db_name.* to 和REVOKE ALL ON db_name.* from 只授予和撤銷數據庫權限。

 

5.3.表層級

表權限適用於一個給定表中的所有列。這些權限存儲在mysql.tables_priv表中。GRANT ALL ON db_name.tbl_name to 和REVOKE ALL ON db_name.tbl_name from 只授予和撤銷表權限。

 

5.4.列層級

列權限適用於一個給定表中的單一列。這些權限存儲在mysql.columns_priv表中。當使用REVOKE時,您必須指定與被授權列相同的列。

 

5.5.子程序層級

CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT權限適用於已存儲的子程序。這些權限可以被授予為全局層級和數據庫層級。而且,除了CREATE ROUTINE外,這些權限可以被授予為子程序層級,並存儲在mysql.procs_priv表中。

 

5. 回收權限:

上述案例的回收權限語句: revoke select, insert, update, delete on work_db.* from test@'%';    關鍵字:revoke , from。

 

其他:

6. mysql.db 表字段說明:

參考:

https://www.cnblogs.com/xibuhaohao/p/10935815.html

https://blog.csdn.net/diyhzp/article/details/63683475

select, insert, update, delete


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM