DCL表示數(shù)據(jù)控制語言,所謂數(shù)據(jù)控制,其實就是"分配權(quán)限",通常會涉及到用戶。我們主要討論兩個問題,1.用戶管理 2.權(quán)限分配。
MySQL中的權(quán)限
MySQL中,主要的權(quán)限如下:
MySQL中的權(quán)限
MySQL中的用戶信息都存儲在系統(tǒng)數(shù)據(jù)庫mysql的user表中,user表中則存儲著每個用戶擁有的權(quán)限。
Snip20170301_3.png
創(chuàng)建用戶
creat user '用戶名'@'允許登錄的地址' identified by '密碼';
說明:
- 創(chuàng)建的用戶需同時指定該用戶可以在哪個地址進行登錄。
- 用戶創(chuàng)建之后,自動在mysql的user表中添加了一條記錄,但該用戶沒有任何權(quán)限。
刪除用戶
drop user '用戶名'@'允許其登錄的地址';
修改用戶密碼
//修改自己的密碼
set password = password('新密碼');
//修改他人密碼(需要修改權(quán)限):
set password for '用戶名'@'允許其登錄的地址'=password('新密碼');
權(quán)限分配
增加權(quán)限:
grant 權(quán)限名1,權(quán)限名2,···on 數(shù)據(jù)庫名.對象名 to '用戶名'@'允許其登錄的地址' identified by '密碼';
>
1. 權(quán)限名:就是'select','update','delete',等等。其中ALL表示"所有權(quán)限",或all privileges也一樣
2. 對象名:*.*表示所有數(shù)據(jù)庫中的所有對象,數(shù)據(jù)庫名.*表示該數(shù)據(jù)庫中的所有對象(較常用)。
3. identified by后可不寫,表示不修改密碼。但創(chuàng)建用戶時必須填寫密碼。
刪除權(quán)限
表示從某個用戶身上移除某些權(quán)限
revoke 權(quán)限名1,權(quán)限名2,···on 數(shù)據(jù)庫名.對象名 from '用戶名'@'允許其登錄的地址';