新建用戶
create user 'username'@'%' identified by 'password';
• user_name:要創建用戶的名字。
• host:表示要這個新創建的用戶允許從哪台機登陸,如果只允許從本機登陸,則 填 ‘localhost’ ,如果允許從遠程登陸,則填 ‘%’
• password:新創建用戶的登陸數據庫密碼,如果沒密碼可以不寫
補充說明:如果碰到新建的用戶使用終端無法登陸的問題:
解決方案:使用root用戶登陸進去,執行
delete from mysql.user where User='username';
Flush Privileges;
分配權限
grant privileges on databasename.tablename to 'username'@'host'
• privileges:表示要授予什么權力,例如可以有 select , insert ,delete,update等,如果要授予全部權力,則填 ALL
• databasename.tablename:表示用戶的權限能用在哪個庫的哪個表中,如果想要用戶的權限很作用於所有的數據庫所有的表,則填 " . ",* 是一個通配符,表示全部。
• ‘username‘@’host’:表示授權給哪個用戶,username 的引號可以不加哦,但 host 必須加。
例:
grant all privileges on *.* to 'username'@'%';--所有權限grant selete, insert on test.user TO 'pig'@'%';--test庫下user表讀和插入的權限
注意:用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
刷新權限:
FLUSH PRIVILEGES;
設置與更改用戶密碼
命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是當前登陸用戶用SET PASSWORD = PASSWORD("newpassword");
例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
撤銷用戶權限
命令:
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
說明: privilege, databasename, tablename - 同授權部分.
例子: REVOKE SELECT ON *.* FROM 'pig'@'%';
注意: 假如你在給用戶'pig'@'%'授權的時候是這樣的(或類似的):GRANT SELECT ON test.user TO 'pig'@'%', 則在使用REVOKE SELECT ON . FROM 'pig'@'%';命令並不能撤銷該用戶對test數據庫中user表的SELECT 操作.相反,如果授權使用的是GRANT SELECT ON . TO 'pig'@'%';則REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤銷該用戶對test數據庫中user表的Select 權限.
具體信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.
刪除用戶
命令:
DROP USER 'username'@'host';
