最近測試中台的存儲服務,涉及到MySQL用戶操作的命令,記錄一下。
1、查看所有用戶
select user from mysql.user;
2、查看當前登陸用戶
select user();
3、創建用戶
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
說明:
username:你將創建的用戶名
host:指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost,如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%
password:該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務器
4、給用戶授權
GRANT privileges ON databasename.tablename TO 'username'@'host';
說明:
privileges:用戶的操作權限,如SELECT,INSERT,UPDATE等,如果要授予所的權限則使用ALL
databasename:數據庫名
tablename:表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示,如*.*
例子:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';
注意:
用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
5、查看用戶權限
2種方式
方式1
show grants for xiaoxi@host;
方式2
SELECT * FROM mysql.user WHERE user='root'\G;
\g 相當於’;’
\G使每個字段打印到單獨的行,也有’;'的作用
說明:
用戶信息:授權對象,連接用戶名,用戶密碼
Host: % # 授權用戶,% 代表所有
User: root # 用戶名
authentication_string: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 #密碼,MD5加密
授權信息:
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 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 Execute_priv:確定用戶是否可以執行存儲過程,此權限只在MySQL 5.0及更高版本中有意義 Repl_slave_priv:確定用戶是否可以讀取用於維護復制數據庫環境的二進制日志文件,此用戶位於主系統中,有利於主機和客戶機之間的通信 Repl_client_priv:確定用戶是否可以確定復制從服務器和主服務器的位置 Create_view_priv:確定用戶是否可以創建視圖,此權限只在MySQL 5.0及更高版本中有意義 Show_view_priv:確定用戶是否可以查看視圖或了解視圖如何執行,此權限只在MySQL 5.0及更高版本中有意義 Create_routine_priv:確定用戶是否可以更改或放棄存儲過程和函數,此權限是在MySQL 5.0中引入的 Alter_routine_priv:確定用戶是否可以修改或刪除存儲函數及函數,此權限是在MySQL 5.0中引入的 Create_user_priv:確定用戶是否可以執行CREATE Event_priv:確定用戶能否創建、修改和刪除事件,這個權限是MySQL 5.1.6新增的 Trigger_priv:確定用戶能否創建和刪除觸發器,這個權限是MySQL 5.1.6新增的 Create_tablespace_priv: 創建表的空間