MySQL授予权限
數據庫中,不同的用戶擁有不同的權限,合理的授權,可以保證數據庫的安全
GRANT語句
MySQL中,提供了一個GRANT語句,用于為用戶授權
語法格式
GRANT privileges [(columns)] [, privileges [(columns)]] ON database.table
TO ‘username’@’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’]
[, ‘username’@’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’]]……
[WITH with_option [with_option]……]
參數說明
privileges,表示權限類型
columns,表示權限作用于某一列,該參數可以省略不寫,此時,權限作用于整個表
username,表示用戶名
hostname,表示主機名
IDENTIFIED BY,為用戶設置密碼
PASSWORD,為關鍵字
password,為用戶的新密碼
WITH關鍵字,后面可以帶有多個參數with_option,有5個取值
1、GRANT OPTION,將自己的權限,授予其他用戶
2、MAX_QUERIES_PER_HOUR count,設置每小時最多,可以執行多少次(count)查詢
3、MAX_UPDATE_PER_HOUR count,設置每小時最多,可以執行多少次更新
4、MAX_CONNECTIONS_PER_HOUR count,設置每小時,最大的連接數量
5、MAX_USER_CONNECTIONS,設置每個用戶最多,可以同時建立連接的數量
使用GRANT語句,創建一個新用戶,用戶名為user4,密碼為123
權限,user4用戶,對所有數據庫有INSERT SELECT權限,并使用WITH GRANT OPTION子句
執行成功,使用SELECT查詢user表的用戶權限
可以看出,user的值為user4
Insert_priv、Slect_priv、Grant_priv的值都為Y
說明,用戶user4,對所有數據庫具有增加、查詢以及對其他用戶,賦予相應權限的功能
總結