簡介:在MySQL數據庫中,為了保證數據的安全性,數據管理員需要根據需要創建賬戶,并為每個賬戶賦予不同的權限,以滿足不同用戶的需求。
本文主要介紹Mysql數據庫的賬戶密碼及權限管理,并通過實際操作進行檢驗。詳細内容請參考下文。
一、訪問Mysql
1、登陸linux系統
2、查看mysql服務
執行指令 # systemctl status mysqld
二、Mysql賬戶管理
1、查看當前可登錄數據庫的用戶
mysql> select host,user from user;
2、創建賬戶
mysql> create user jason@'%' identified by '1qaz!QAZ';
備注:username是用戶名,host用于指定登錄的主機,如果是本地用戶用localhost,如果需要遠程連接可以指定ip,或者使用“%”可以從任意主機登錄。
3、修改賬戶
mysql> update user set user='jasontang' where user='jason';
4、禁用賬戶
mysql> alter user jasontang account lock;
注意:
禁用賬戶過程提示密碼策略問題,可以修改密碼策略。如下圖
查看 mysql 初始的密碼策略
修改密碼策略,設置 validate_password_policy 的全局參數為LOW。
5、啟用賬戶
mysql> alter user jasontang account unlock;
6、删除賬戶
mysql> drop user jasontang;
三、Mysql賬戶密碼管理
1、修改賬戶密碼
mysql> alter user test identified by '1qaz!QAZ';
2、設置密碼有效期
mysql> alter user test password expire interval 200 day;
3、禁用密碼過期功能
mysql> alter user test password expire never;
4、恢複默認用戶密碼策略
mysql> alter user test password expire default;
四、Mysql賬戶權限管理
在MySQL中提供了一個GRANT語句為用戶授權。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個取值,具體如下:GRANT OPTION将自己的權限授予其他用戶;MAX_QUERIES_PER_HOUR count設置每小時最多可以執行多少次(count)查詢;MAX_UPDATES_PER_HOUT count設置每小時最多可以執行多少次更新;MAX_CONNECTIONS_PER_HOUR count設置每小時最大的連接數量;MAX_USER_CONNECTIONS設置每個用戶最多可以同時建立連接的數量。
GRANT命令的常見格式:
命令解析 |
作用 |
GRANT 權限 ON 數據庫.表單名稱 TO 賬戶名@主機名 |
對某個特定數據庫中的特定表單賦權 |
GRANT 權限 ON 數據庫.* TO 賬戶名@主機名 |
對某特定數據庫中的所有表單賦權 |
GRANT 權限 ON *.* TO 賬戶名@主機名 |
對所有數據庫及其所有表單賦權 |
GRANT 權限1,權限2 ON 數據庫.* TO 賬戶名@主機名 |
對某數據庫的所有表單賦多個權 |
GRANT ALL PRIVILEGES ON *.* TO 賬戶名@主機名 |
對全部數據及表單賦予所有權限 |
1、查看當前用戶的權限
mysql> show grants;
2、查看特定用戶的權限
mysql> show grants for test;
3、給用戶添加某權限
mysql> grant index on *.* to test;
備注:賦予多項權限用逗号隔開。
4、删除用戶某項權限
mysql> revoke delete on *.* from test;
備注:同時删除所有的權限用all。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!