1.添加賬戶:
# 建立一個密碼為123456的testuser賬戶# 若不寫【identified by '123456'】則建立一個密碼為空白的testuser賬戶mysql> create user testuser identified by '123456';# 重新整理許可權變更mysql> flush privileges;
2.授予許可權
# 為testuser賬戶授予本地訪問所有資料庫的所有許可權mysql> grant all privileges on *.* to 'testuser'@'localhost' identified by '123456';mysql> flush privileges;
命令格式:
grant privilegesCode on dbName.tableName to username@host identified by "password";
privilegesCode
表示授與權限類型,常用的有以下幾種類型:
all privileges
:所有許可權;
select
:讀取許可權;
delete
:刪除許可權;
update
:更新許可權;
create
:建立許可權;
drop
:刪除資料庫、資料表許可權。
完整的權限類別型如下:
Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Reload_priv: Y Shutdown_priv: Y Process_priv: Y File_priv: Y Grant_priv: Y References_priv: Y Index_priv: Y Alter_priv: Y Show_db_priv: Y Super_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Execute_priv: Y Repl_slave_priv: Y Repl_client_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Create_user_priv: Y Event_priv: Y Trigger_priv: YCreate_tablespace_priv: Y
詳細介紹可閱讀MySQL官方文檔
dbName.tableName
表示授予許可權的具體庫或表,常用的有以下幾種選項:
*.*
:授予該資料庫伺服器所有資料庫的所有表的許可權;
dbName.*
:授予dbName資料庫所有表的許可權;
dbName.dbTable
:授予資料庫dbName中dbTable表的許可權。
username@host
表示授予的使用者以及允許該使用者登入的IP地址。其中host有以下幾種類型:
localhost
:只允許該使用者在本地登入,不能遠程登入。
%
:允許在除本機之外的任何一台機器遠程登入。
192.168.1.11
:具體的IP表示只允許該使用者從特定IP登入。
identified by "password"
:表示存取權限使用者的密碼,如果無此語句,則預設密碼為空白。
查看許可權授予的命令:
mysql> show grants for 'testuser';
3.刪除使用者
# 將剛才建立的本地存取權限的testuser使用者刪除drop user testuser@'localhost';