轉載地址:https://blog.csdn.net/luguodehua/article/details/80327462
1.使用root用戶登錄mysql數據庫
輸入如下指令:
SELECT * FROM mysql.user;
得到所有用戶及對應權限。
2.創建用戶
CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';
user_name:為創建用戶的名字
host:表示要這個新創建的用戶允許從哪台機登陸。
如果只允許從本機登陸,則 填 ‘localhost’ ,如果允許從遠程登陸,則填 ‘%’
password:新創建用戶的登陸數據庫密碼,如果沒密碼可以不寫。
例如:
1)
CREATE USER 'aaa'@'localhost' IDENTIFIED BY '123456';
//表示創建的新用戶,名為aaa,這個新用戶密碼為123456,只允許本機登陸;
2)
CREATE USER 'bbb'@'%' IDENTIFIED BY '123456';
//表示新創建的用戶,名為bbb,這個用戶密碼為123456,可以從其他電腦遠程登陸mysql所在服務器;
3)
CREATE USER 'ccc'@'%';
//表示新創建的用戶ccc,沒有密碼,可以從其他電腦遠程登陸mysql服務器
我們新建一個用戶看一下,
CREATE USER 'aaa'@'localhost' IDENTIFIED BY '123456'; SELECT * FROM mysql.user;
我們可以看到新增的用戶aaa.
3.對用戶進行授權
命令:
GRANT PRIVILEGES ON databasename.tablename TO 'username'@'host';
privileges:表示要授予什么權限,例如可以有 select , insert ,delete,update等,如果要授予全部權力,則填 ALL
databasename.tablename:表示用戶的權限能用在哪個庫的哪個表中,如果想要用戶的權限很作用於所有的數據庫所有的表,則填 *.*,*是一個通配符,表示全部。
'username'@'host':表示授權給哪個用戶。
例如:
1)
GRANT select,insert ON emp.emp TO 'aaa'@'localhost';
//表示給用戶aaa授權,讓aaa能給emp庫中的emp表 實行 insert 和 select。
2)
GRANT ALL ON *.* TO 'aaa'@'localhost';
//表示給用戶aaa授權,讓aaa能給所有庫所有表實行所有的權力。
我們給新創建的aaa用戶賦予所有的權限
GRANT ALL ON *.* TO 'aaa'@'localhost';
可以看到aaa用戶的權限已做了改變,有N-->Y。
4.刪除用戶
指令:
DROP USER 'aaa'@'localhost';
5.設置與更改用戶密碼
指令:
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是設置當前用戶的密碼:
SET PASSWORD = PASSWORD('newpassword');
如:
SET PASSWORD = PASSWORD('123456');
6.撤銷用戶權限
指令:
REVOKE PRIVILEGES ON database.tablename FROM 'username'@'host';
例如:撤銷用戶aaa的select權限
REVOKE SELECT ON *.* FROM 'aaa'@'localhost';