天天看點

2.DCL

MySQL的權限體系

1.MySQL的權限資訊主要存儲在以下幾張表中,當使用者連接配接資料庫時,MySQL會根據這些表對使用者進行權限驗證。

表名 描述
user 使用者權限表,記錄賬号、密碼及全局性權限資訊
db 記錄資料庫相關權限
table_priv 使用者對某個表擁有的權限
column_priv 使用者對某表的某列所擁有的權限
procs_priv 使用者對存儲過程及存儲函數的操作權限

2.使用grant和revoke進行授權、撤銷授權時,需要指定具體是哪些權限,這些權限大體可以分為3類,資料類、結構類和管理類。

資料 結構 管理
select create usage
insert alter grant
update index super
delete drop process
file create temporary tables reload
show view shutdown
create routine show databases
alter routine lock tables
execute references
create view repucation cuent
event repucation slave
trigger create user

權限管理

1.建立使用者

create user'使用者名' [@'主機名'] [identified by '密碼'];      

如下圖所示,建立一個使用者名為steven,主機名為localhost,密碼為admin123456的使用者。

2.DCL

2.删除使用者

drop user'使用者名' [@'主機名'];      

如下圖所示,删除使用者名為steven,主機名為localhost的使用者。

2.DCL

3.修改密碼

alter user'使用者名'@'主機名' identified by '新密碼';      

如下圖所示,将建立的使用者名為steven,主機名為localhost,密碼為admin123456的使用者密碼修改為admin123。

2.DCL

4.檢視權限

show grants for '使用者名' [@'主機名'];      

如下圖所示,檢視使用者名為steven,主機名為localhost的使用者權限。

2.DCL

5.授權

grant all privileges on databaseName.tableName to '使用者名' [@'主機名'];      

如下圖所示,将資料庫mydb的contacts表權限賦予使用者名為steven,主機名為localhost的使用者。

2.DCL

6.撤銷授權

revoke all privileges on databaseName.tableName from '使用者名' [@'主機名'] ;      

如下圖所示,收回使用者名為steven,主機名為localhost的使用者所擁有的contacts表權限。

2.DCL
flush privileges;      
update user set host = 'localhost' where user = 'username';      

繼續閱讀