MySQL高級(jí) 第2章MySql的用戶和權(quán)限管理

1. Mysql的用戶管理

1.1 相關(guān)命令

命令

描述

備注

create user zhang3 identified by '123123';

創(chuàng)建名稱為zhang3的用戶,密碼設(shè)為123123;

 

select host,user,password,select_priv,insert_priv,drop_priv from mysql.user;

查看用戶和權(quán)限的相關(guān)信息

 

set password =password('123456')

修改當(dāng)前用戶的密碼

 

update mysql.user set password=password('123456') where user='li4';

修改其他用戶的密碼

所有通過(guò)user表的修改,必須用flush privileges;命令才能生效

update mysql.user set user='li4' where user='wang5';

修改用戶名

所有通過(guò)user表的修改,必須用flush privileges;命令才能生效

drop user li4

刪除用戶

不要通過(guò)delete from ?user u where user='li4' 進(jìn)行刪除,系統(tǒng)會(huì)有殘留信息保留。

 

1.2 示例說(shuō)明

host?:表示連接類型

????????% 表示所有遠(yuǎn)程通過(guò) TCP方式的連接

????????IP 地址 如 (192.168.1.2,127.0.0.1) 通過(guò)制定ip地址進(jìn)行的TCP方式的連接

???????機(jī)器名 ??通過(guò)制定i網(wǎng)絡(luò)中的機(jī)器名進(jìn)行的TCP方式的連接

????????::1 ??IPv6的本地ip地址 ?等同于IPv4的 127.0.0.1

????????localhost 本地方式通過(guò)命令行方式的連接 ,比如mysql -u xxx -p 123xxx 方式的連接。

??user:表示用戶名

???????同一用戶通過(guò)不同方式鏈接的權(quán)限是不一樣的。

 

??password:密碼

???????所有密碼串通過(guò) password(明文字符串) 生成的密文字符串。加密算法為MYSQLSHA1 ,不可逆 。

????????mysql 5.7 的密碼保存到 authentication_string 字段中不再使用password 字段。

??select_priv , insert_priv

????????為該用戶所擁有的權(quán)限。

2. Mysql的權(quán)限管理

2.1 授予權(quán)限

命令

描述

grant 權(quán)限1,權(quán)限2,…權(quán)限n on 數(shù)據(jù)庫(kù)名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’

該權(quán)限如果發(fā)現(xiàn)沒(méi)有該用戶,則會(huì)直接新建一個(gè)用戶。

示例:

grant select,insert,delete,drop on atguigudb.* to li4@localhost ?;

給li4用戶用本地命令行方式下,授予atguigudb這個(gè)庫(kù)下的所有表的插刪改查的權(quán)限。

 

grant all privileges on *.* to joe@'%' ?identified by '123';

授予通過(guò)網(wǎng)絡(luò)方式登錄的的joe用戶 ,對(duì)所有庫(kù)所有表的全部權(quán)限,密碼設(shè)為123.

2.2 收回權(quán)限

命令

描述

備注

show grants

查看當(dāng)前用戶權(quán)限

 

revoke ?[權(quán)限1,權(quán)限2,…權(quán)限n]?on

庫(kù)名.表名 ?from ?用戶名@用戶地址 ;

收回權(quán)限命令

 

REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost;

收回全庫(kù)全表的所有權(quán)限

 

REVOKE select,insert,update,delete ON mysql.* FROM joe@localhost;

收回mysql庫(kù)下的所有表的插刪改查權(quán)限

 

權(quán)限收回后,必須用戶重新登錄后,才能生效。

2.3 查看權(quán)限

命令

描述

備注

show grants;

查看當(dāng)前用戶權(quán)限

 

select ?* from user ;

 

 

 

 

?