一迅栅、用戶管理
mysql中的所有用戶宣蠕,都存儲在系統(tǒng)數(shù)據(jù)庫(mysql)中的user 表中——不管哪個數(shù)據(jù)庫的用戶雄驹,都存儲在這里愈诚。
示例:
mysql> use mysql;
mysql> select *from user;
1.創(chuàng)建用戶
語法形式:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
說明:
username – 你將創(chuàng)建的用戶名,
host – 指定該用戶在哪個主機(jī)上可以登陸,如果是本地用戶可用localhost,
如果想讓該用戶可以從任意遠(yuǎn)程主機(jī)登陸,可以使用通配符%.
password –? 該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登 陸服務(wù)器.
示例
CREATE USER 'test'@'%' IDENTIFIED BY 'Test_test_123456';#在mysqkl5.7上設(shè)置了安全密碼機(jī)制登澜,設(shè)置的密碼必須要符合該機(jī)制阔挠,否則會出錯
2.刪除用戶
DROP?USER?‘username’@'host’; #這里的host要跟user表里的host進(jìn)行對應(yīng)
示例:
mysql> drop USER 'test'@'%';
3.查看和修改用戶允許登錄的host
mysql> use mysql;
mysql> select host,user from user;#查看mysql中的用戶允許登錄的ip
mysql> update user set host = '%' where user = 'root';#修改root的host為%,表示允許任意IP地址登錄. 設(shè)置為后需要重啟mysql或機(jī)器
二、權(quán)限管理
mysql數(shù)據(jù)庫脑蠕,將其中所能做的所有事情购撼,都分門別類分配到大約30多個權(quán)限中去了,其中每個權(quán)限谴仙,都是一個“單詞”而已迂求!,比如:
select:代表可以查詢數(shù)據(jù)晃跺;
update:代表可以修改數(shù)據(jù)揩局;
delete:代表可以刪除數(shù)據(jù);
.......
其中掀虎,有一個權(quán)限名叫做“all”:表示所有權(quán)限凌盯;
有如下權(quán)限:
1.用戶授權(quán)
語法形式:GRANT privileges ON databasename.tablename TO 'username'@'host'
說明:
privileges – 用戶的操作權(quán)限,如SELECT , INSERT , UPDATE? 等(詳細(xì)列表見該文最后面).
如果要授予所有的權(quán)限則使用ALL.;
databasename – 數(shù)據(jù)庫名
tablename-表名,如果要授予該用戶對所有數(shù)據(jù)庫和表的相應(yīng)操作權(quán)限則可用* 表示, 如*.*.
示例:
mysql> GRANT SELECT, INSERT ON mysql.user TO 'test'@'%';
mysql> GRANT ALL ON *.* TO 'test'@'%';
注意:用以上命令授權(quán)的用戶不能給其它用戶授權(quán),如果想讓該用戶可以授權(quán),用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION付枫;
2.撤銷用戶權(quán)限
語法形式:REVOKE?privilege?ON?databasename.tablename?FROM?'username'@'host';
說明:
privilege,?databasename,?tablename?–?同授權(quán)部分.
示例
mysql> REVOKE SELECT, INSERT ON `mysql`.`user` FROM 'test'@'%';#撤銷權(quán)限注意和用戶的授權(quán)列表對應(yīng)
撤銷技巧說明
step1.查看該用戶的權(quán)限列表
mysql> show grants for test@'%';
step2.復(fù)制該用戶的權(quán)限
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'
step3.把GRANT替換為REVOKE ON替換為FROM,執(zhí)行即可
mysql> REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'%';
3.查看某個用戶的權(quán)限列表(host要跟user表里的host對應(yīng))
mysql> show grants for root@'localhost';#對于localhost的用戶
mysql> show grants for test@'%';#對于任意ip的用戶