權(quán)限管理基本概念
- 我們可以把MySQL看做是一個(gè)工廠既棺,db就是其中的一個(gè)個(gè)倉(cāng)庫(kù),比如有A倉(cāng)庫(kù)碳胳,B倉(cāng)庫(kù)等等,而我們的表啊沫勿,索引啊什么的就是倉(cāng)庫(kù)里面的貨物挨约。
- MySQL有一套嚴(yán)格的權(quán)限管理制度,那什么是權(quán)限管理产雹,為什么要有權(quán)限管理诫惭?MySQL的用戶中,有些用戶只需要查看MySQL數(shù)據(jù)蔓挖,不需要往MySQL添加數(shù)據(jù)和刪除數(shù)據(jù)夕土,而有些用戶不止可以看數(shù)據(jù),還可以增加和刪除數(shù)據(jù)瘟判,如果我們都給所有用戶同樣的權(quán)限怨绣,那么有些只需要看數(shù)據(jù)庫(kù)的用戶不小心誤操作了,把數(shù)據(jù)庫(kù)刪除了怎么辦拷获?所以MySQL把權(quán)限進(jìn)行細(xì)化篮撑,并把細(xì)化后的權(quán)限按需分配用戶。(細(xì)化后的權(quán)限有:查詢數(shù)據(jù)庫(kù)匆瓜,添加數(shù)據(jù)庫(kù)赢笨,刪除數(shù)據(jù)庫(kù),更新數(shù)據(jù)庫(kù)驮吱,添加表茧妒,刪除表...)
- 現(xiàn)在我們知道user的出現(xiàn)是為了權(quán)限的細(xì)化,但是我們?cè)賱?chuàng)建user的時(shí)候糠馆,有時(shí)候會(huì)發(fā)現(xiàn)user后面還會(huì)跟著@host嘶伟,那這又是怎么回事呢?host是主機(jī)的意思又碌,與MySQL打交道的多是一些特定的機(jī)器九昧,這些機(jī)器有著特定的ip绊袋,我們可以限定某些ip的權(quán)限,比如限定內(nèi)網(wǎng)ip才能對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作铸鹰,如果不這么做癌别,可能某些不法分子得到了數(shù)據(jù)庫(kù)的賬號(hào)密碼,然后就可以對(duì)數(shù)據(jù)庫(kù)為所欲為了蹋笼。
用戶管理
- 創(chuàng)建用戶
create user huang identified by 'Huang123!'
- 創(chuàng)建一個(gè)有特定主機(jī)的用戶
create user huang@10.10.123.1 identified by 'Huang123!'
- 修改密碼
alter user huang identified by 'Huang123@'
- 查看當(dāng)前用戶
select user();
- 刪除用戶
drop user huang
- 查詢所有的用戶(僅限于管理員用戶)
select * from mysql.user;
權(quán)限管理
- 授予全部權(quán)限
grant all privileges on *.* to huangzp
- 授予某個(gè)數(shù)據(jù)庫(kù)展姐,某個(gè)表,某個(gè)權(quán)限
grant select on test.chatting_log_201702 to huangzp1;
- 回收某個(gè)權(quán)限
revoke all privileges on test.chatting_log_201702 from huangzp1;
- 授權(quán)給某個(gè)未存在的用戶并且創(chuàng)建用戶
grant all privileges on test.* to huangzp3@localhost identified by 'Huangzp123!';
- 授權(quán)給某個(gè)用戶并且這個(gè)用戶可以把權(quán)限授予他人
grant select on test.chatting_log_201702 to huangzp3 identified by 'Huangzp3!' with grant option;
- 如果我們想看數(shù)據(jù)庫(kù)中剖毯,db圾笨,tables的權(quán)限管理,可以用管理員用戶查看
select * from mysql.db
select * from mysql.tables_priv