MySQL是一個(gè)多用戶的數(shù)據(jù)庫(kù),最高權(quán)限管理者是root用戶,它擁有著最高的權(quán)限操作。包括select、update、delete、update、grant等操作。如果有其他用戶想使用MySQL,那么一般情況在公司之后DBA工程師會(huì)創(chuàng)建一個(gè)用戶和密碼,讓你去連接數(shù)據(jù)庫(kù)的操作,并給當(dāng)前的用戶設(shè)置某個(gè)操作的權(quán)限(或者所有權(quán)限)。那么這時(shí)就需要我們來(lái)簡(jiǎn)單了解一下:
- 如何創(chuàng)建用戶和密碼
- 給當(dāng)前的用戶授權(quán)
- 移除當(dāng)前用戶的權(quán)限
在Mysql中,一切的數(shù)據(jù)存放在表中,而用戶表存放在mysql庫(kù)中的user表,我們使用mysql.user 來(lái)表示mysql庫(kù)中的user表,如果你想創(chuàng)建一個(gè)新的用戶,則需要以下操作:
1.進(jìn)入到mysql數(shù)據(jù)庫(kù)
mysql> use mysql;
Database changed
2.對(duì)用戶列表的查增改刪
查詢用戶語(yǔ)法:select host,user from mysql.user;
mysql> select host,user from mysql.user;
增加用戶語(yǔ)法: create user "<username>"@"<host>" identified by "<password>";
myqsl> create user "pingtai"@"%" identified by "1qe3!QE#";
修改用戶IP地址語(yǔ)法: rename user '<用戶名>'@'<IP地址>' to '<新用戶名>'@'<IP地址>';
修改用戶密碼語(yǔ)法有兩種:1. ALTER USER '用戶名'@'IP' IDENTIFIED BY '密碼';
set password for '用戶名'@'IP地址'=Password('新密碼'); 兩個(gè)意思一樣
mysql> rename user 'root'@'%' to 'root'@'19.130.%';
刪除用戶語(yǔ)法: drop user '<用戶名>@'<IP地址>'
mysql> drop user 'test'@'%';
3.對(duì)用戶權(quán)限的查增改刪
mysql權(quán)限有很多,常見(jiàn)的增刪查改是insert delete select update
查詢用戶權(quán)限語(yǔ)法:show grant for '<用戶名>'@'<IP地址>'
mysql> show grants for 'root'@'localhost'
授權(quán)語(yǔ)法: grant <privileges> on <databasename>.<tablename> to '<username>'@'<host>'
#設(shè)置遠(yuǎn)程管理員權(quán)限,默認(rèn)不帶grant權(quán)限
grant all privileges on *.* to "alex"@'%';
#授權(quán)'alex'@'%'用戶僅對(duì)db1.t1文件有查詢、插入和更新的操作
grant select,insert,update on db1.t1 to "alex"@'%';
?
#授權(quán)'sdata'@'%'用戶對(duì)szyd數(shù)據(jù)庫(kù)的全部表只有讀取的權(quán)限
grant select on szyd.* to 'sdata'@'%';
改權(quán)限也就是增刪權(quán)限,撤銷權(quán)限的語(yǔ)法是: revoke <privileges> on <數(shù)據(jù)庫(kù)>.<表> from '<用戶名>'@'IP';
# 取消來(lái)自遠(yuǎn)程服務(wù)器的alex用戶對(duì)數(shù)據(jù)庫(kù)db1的所有表的所有權(quán)限
revoke all on db1.* from 'alex'@"%";
?
#取消'alex'@'%'對(duì)szyd數(shù)據(jù)庫(kù)全部表的delete權(quán)限
revoke delete on szyd.* from 'alex'@'%';
?
#撤銷'alex'@'%'用戶對(duì)所有庫(kù)所有表的全部權(quán)限
revoke all on *.* form 'alex'@'%';