1.創建用戶
create user ‘username’@‘host’ identified by ‘password’
username:用戶名
host:指定該用戶在哪個主機上可以登陸localhost 表示本地用戶,%表示任意主機均可登錄
password:登陸密碼,可以爲空
例如:
創建遠程登錄用戶:
create user 'adminuser'@'%' identified by '123456';
注:一般默認用戶是root,所以不用創建root用戶,直接給root用戶修改密碼和授權即可
2.授權用戶
grant privileges on databasename.tablename to 'username'@'host'
privileges:用戶的操作權限,如select,insert,update等,如果要授予所的權限則使用ALL
databasename:數據庫名稱
tablename:表名稱,*.* 表述授權所有數據庫和表
例如:
授權備份權限:
grant select, reload, lock tables,replication client,show view, event, process on *.* to 'backup'@'localhost';
授權查詢,插入權限
GRANT SELECT, INSERT ON orderdb.t_order TO 'orderuser'@'%';
授權所有庫所有權限
GRANT ALL ON *.* TO 'adminuser'@'%';
授權orderdb數據庫所有權限
GRANT ALL ON ordered.* TO 'orderuser'@'%';
注意:
以上的命令授權的用戶只可以擁有對相應數據庫的操作權限。沒有給其他用戶授權的權限。一般情況下,需要給root用戶授予給其他用戶授權的權限。如下:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
如給root用戶授權所有機器登錄並擁有授權權限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root1234' WITH GRANT OPTION;
FLUSH PRIVILEGES;
3.設置和更新用戶密碼
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
或者
ALTER USER 'username'@'host' IDENTIFIED BY 'newpassword';
例如:
SET PASSWORD FOR 'root'@'%' = PASSWORD("123456");
或者
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
注意:如果設置當前登錄密碼,可直接
SET PASSWORD = PASSWORD("newpassword");
4.撤銷用戶權限
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
例如:
REVOKE SELECT ON *.* FROM 'adminuser'@'%';
注意:撤銷權限時儘量保持於授權時的數據庫信息一直,否則會撤銷失敗。
具體查看可執行撤銷命令,可用:
SHOW GRANTS FOR 'adminuser'@'%';
5.刪除用戶
DROP USER 'username'@'host';