mysql權限級別介紹
- 全局管理權限(Global Level)
-
作用與整個mysql實例級別,所有權限信息存儲在mysql.user表,擁有權限信息如下
global.png
-
- 數(shù)據(jù)庫級別權限(Database Level)
-
作用于指定的數(shù)據(jù)庫的所有對象中沦童,權限信息存儲在mysql.db表习贫,擁有權限信息如下所示
database.png
-
- 數(shù)據(jù)庫對象級別權限(Table Level)
-
作用于指定數(shù)據(jù)庫的指定表掉房,權限信息存儲在mysql.tables_priv表茫陆,擁有權限信息如下所示
table.png
-
- 數(shù)據(jù)庫字段級別權限(Column Level)
-
作用于指定的某些列,權限信息存儲在mysql.columns_priv表,擁有權限信息如下所示
column.png
-
- 存儲過程權限(Routime Level)
-
作用于procedure和function兩種對象逃延,授予權限時览妖,需指定數(shù)據(jù)庫和相關對象
權限信息存儲在mysql.procs_priv表,擁有權限信息如下所示
routine.png
-
授權命令
- 通過create user命令創(chuàng)建用戶(用戶名大小寫敏感)
mysql> create USER 'user_name'@'host_name' identified by 'password';
?1. 用戶名大小寫敏感
2. 單引號不是必須揽祥,但如果其中包含特殊字符則是必須的
3. ‘’@‘localhost’代表匿名登錄的用戶
4. Host_name可以使主機名或者ipv4/ipv6的地址讽膏。Localhost代表本機,
127.0.0.1代表ipv4的 本機地址拄丰,::1代表ipv6的本機地址
5. Host_name字段允許使用%和_兩個匹配字符府树,比如’%’代表所有主機
- 通過create user命令創(chuàng)建用戶并授權
mysql> grant all privileges on *.* to 'user_name'@'host_name' identified by 'password';
- 刷新權限
mysql> flush privileges;
- 顯示所有授權信息
mysql> show grants;
- 移除授權(要與授權的命令一樣)
mysql> revoke all privileges on *.* from 'user_name'@'host_name';
- 刪除用戶
mysql> drop user ‘user_name’@'host_name';
- 給用戶改名
mysql> rename user 'user_name'@'host_name' to 'newName'@'host_name';
- 給用戶改密碼
mysql> set password for 'user_name'@'host_name' = password('newPassword');
mysql> alter USER 'user_name'@'host_name' identified by 'newPassword';
mysql> grant USAGE on *.* to 'user_name'@'host_name' identified by 'newPassword';
shell> mysqladmin -u user_name -h host_name password "newPassword";
?權限授權生效時間
1. 執(zhí)行grant、revoke料按、set password奄侠、rename user 命令修改權限后
mysql會自動將修改后的權限信息同步加載到系統(tǒng)內存
2. 如果執(zhí)行insert/update/delete操作系統(tǒng)權限表后,則必須再執(zhí)行刷新
權限命令才能同步到系統(tǒng)內存中载矿,刷新權限命令包括flush privileges
/mysqladmin flush-privileges/mysqladmin reload
3. 如果修改tables和columns級別權限垄潮,則客戶端的下次操作新權限就會生效
如果修改database級別權限,則新權限在客戶端執(zhí)行use database命令后生效
如果修改global級別權限闷盔,則需要重新創(chuàng)建連接新權限才能生效
?設置參數(shù)(跟create user/grant后)
WITH MAX_QUERIES_PER_HOUR:一個用戶在一個小時內可以執(zhí)行查詢的次數(shù)
WITH MAX_UPDATES_PER_HOUR:一個用戶在一個小時內可以執(zhí)行修改的次數(shù)
WITH MAX_CONNECTIONS_PER_HOUR:一個用戶在一個小時內可以連接 MySQL的時間
WITH MAX_USER_CONNECTIONS:一個用戶可以在同一時間連接MySQL實例 的數(shù)量
PASSWORD EXPIRE INTERVAL <number> DAY;:密碼過期時間(INEVER表示不過期)
account lock:用戶被鎖
MAX_UPDATES_PER_HOUR:一個用戶在一個小時內可以執(zhí)行修改的次數(shù)