MariaDB用戶管理

1、 創建用戶
前置條件:必須擁有globalCREATE USER privilege或者MySQL 數據庫的INSERT privilege。

例:

MariaDB>create useruser@’host’ identified by ‘password’;

其中:
user爲用戶名。
host爲主機。可以使用localhost、ip地址或者hostname,使用’%’表示不限制主機。‘user’@’host’構成一個唯一用戶。
password爲密碼。

2、 修改用戶
前置條件:alteruser語句需要具備修改賬號的權限並且對mysql庫有insert權限。

例:

MariaDB>set password foruser@’host’ = PASSWORD(‘password’);

其中:user’@’host’爲需要設置密碼的用戶,不寫for user爲設置當前用戶的密碼,PASSWORD及OLD_PASSWORD對後面的明文‘password’進行加密處理,或者直接輸入加密後的密碼,如’*23AE809DDACAF96AF0FD78ED04B6A265E05AA257’。

3、 刪除用戶
例:

MariaDB >dropuseruser@’host’;

4、 限制賬戶資源
對單個賬戶可以設置的資源限制有
1. 每小時查詢次數
2. 每小時更新次數
3. 每小時連接次數
4. 同時在線的連接個數
對應:GRANTOPTION
| MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS count
例:

MariaDB > GRANT ALL ON *.* TO ‘user’@’host’
IDENTIFIEDBY 'password'
WITHMAX_QUERIES_PER_HOUR 20
MAX_UPDATES_PER_HOUR 10
MAX_CONNECTIONS_PER_HOUR 5
MAX_USER_CONNECTIONS 2;

當賬戶的限制非0時則會給資源使用計數。Server運行時給每個賬戶的使用資源計數,如果達到了連接次數限制則下一個連接將會被拒絕。同樣地若達到了查詢、修改等次數限制則會產生一個error信息。
每個賬戶各自進行資源計數而不是針對客戶端。可以全局重置當前的每小時使用的資源計數,也可以針對指定的賬戶重置計數:
1. 將所有賬戶計數器清零使用FLUSH USER_RESOURCES語句。重新加載權限表語句也會清零計數器(FLUSH PRIVILEGES或mysqladmin reload命令)
2. 給特定賬戶清零計數器使用GRANT USAGE語句指定一個與原來一樣的限制次數
計數器清零對於max_user_connections無效,系統重啓會將所有的計數器清零。

5、 用戶管理表user
用戶信息存儲在系統表mysql.user中,可以通過對user表的增刪改查來實現對用戶的管理。
User表字段及其含義:

字段名 含義
Host 表示容許該用戶連接的客戶端限制,取值有:’localhost’、IP地址、域名、’%’;其中%表示不限制
User 用戶名
Password 加密後的密碼
Select_priv 確定用戶是否可以通過SELECT命令
Insert_priv 確定用戶是否可以通過INSERT命令插入數據
Update_priv 確定用戶是否可以通過UPDATE命令修改現有數據
Delete_priv 確定用戶是否可以通過DELETE命令刪除現有數據
Create_priv 確定用戶是否可以創建新的數據庫和表
Drop_priv 確定用戶是否可以刪除現有數據庫和表
Reload_priv 確定用戶是否可以執行刷新和重新加載MySQL所用各種內部緩存的特定命令,包括日誌、權限、主機、查詢和表。
Shutdown_priv 確定用戶是否可以關閉MySQL服務器。在將此權限提供給root賬戶之外的任何用戶時,都應當非常謹慎
Process_priv 確定用戶是否可以通過SHOW PROCESSLIST命令查看其他用戶的進程
File_priv 確定用戶是否可以執行SELECT INTO OUTFILE和LOAD DATA INFILE命令
Grant_priv 確定用戶是否可以將已經授予給該用戶自己的權限再授予其他用戶。例如,如果用戶可以插入、選擇和刪除foo數據庫中的信息,並且授予了GRANT權限,則該用戶就可以將其任何或全部權限授予系統中的任何其他用戶
References_priv 目前只是某些未來功能的佔位符;現在沒有作用
Index_priv 確定用戶是否可以創建和刪除表索引
Alter_priv 確定用戶是否可以重命名和修改表結構
Show_db_priv 確定用戶是否可以查看服務器上所有數據庫的名字,包括用戶擁有足夠訪問權限的數據庫。
Super_priv 確定用戶是否可以執行某些強大的管理功能,例如通過KILL命令刪除用戶進程,使用SET GLOBAL修改全局MySQL變量,執行關於複製和日誌的各種命令。
Create_tmp_table_priv 確定用戶是否可以創建臨時表
Lock_tables_priv 確定用戶是否可以使用LOCK TABLES命令阻止對錶的
Execute_priv 確定用戶是否可以執行存儲過程。
Repl_slave_priv 確定用戶是否可以讀取用於維護複製數據庫環境的二進
Repl_client_priv 確定用戶是否可以確定複製從服務器和主服務器的位置
Create_view_priv 確定用戶是否可以創建視圖
Show_view_priv 確定用戶是否可以查看視圖或瞭解視圖如何執行
Create_routine_priv 確定用戶是否可以更改或放棄存儲過程和函數
Alter_routine_priv 確定用戶是否可以修改或刪除存儲函數及函數
Create_user_priv 確定用戶是否可以執行CREATE USER命令
Event_priv 確定用戶能否創建、修改和刪除事件
Trigger_priv 確定用戶能否創建和刪除觸發器
Create_tablespace_priv 確定用戶能否創建表空間
ssl_type
ssl_cipher
x509_issuer
x509_subject
max_questions 每小時可執行的查詢命令
max_updates 每小時可執行的更新命令
max_connections 每小時的容許用戶的最多連接次數
max_user_connections 每小時容許用戶最大連接客戶端個數
Plugin
authentication_string 認證字符串
password_expired 密碼是否已過期
is_role 是否爲角色
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章