創建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
-- username是你將創建的用户名;
-- host是指定該用户在哪個主機上可以登陸,如果是本地用户可用localhost, 如果想讓該用户可以從任意遠程主機登陸,可以使用通配符%;
-- password是該用户的登陸密碼,密碼可以為空,如果為空則該用户可以不需要密碼登陸服務器。
例子:
-- 選擇mysql數據庫
use mysql;
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101' IDENDIFIED BY '123456';
CREATE USER 'cat'@'%' IDENTIFIED BY '123456';
CREATE USER 'tiger'@'%' IDENTIFIED BY '';
CREATE USER 'zebra'@'%';
-- 刷新MySQL的系統權限相關表,使添加用户操作生效,以免會出現拒絕訪問
flush privileges;
修改用户密碼
-- 使用update指令,注意這裏的password需要進行加密
use mysql;
update user set password = password('iamsuperman') where user = 'superboy'; -- 這種方法是直接修改user表
flush privileges;
----------------或者------------------
set password for superboy@'localhost'= password('iamsuperman'); -- 最新版本已經不支持這種方法了
flush privileges;
----------------或者------------------
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';
查看用户信息
use mysql;
select host, user, password from user;
常用的權限類型
all privileges:所有權限。
select:讀取權限。
create:創建權限。
delete:刪除權限。
update:更新權限。
drop:刪除數據庫、數據表權限。
授權命令
grant 權限類型 on 數據庫名.表名 to '用户名'@'ip地址' identified by '用户密碼' with grant option;
-- 如果帶了with grant option,那麼用户可以將權限傳遞給其他用户
-- 如果沒帶with grant option,那麼用户不能給授權
-- 簡單的説就是with grant option可以將權限傳遞給第三方
查看用户權限
-- 查看本地root的權限,沒有指定後面的localhost則默認為'%'
show grants for root@'localhost';
-- 查看指定host的root的權限
show grants for root@'192.168.122.12';
撤銷用户授權
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
-- 例子:撤銷zebra的所有權限
revoke all privileges on *.* from 'zebra'@'%';
刪除用户
如果需要刪除用户,可以這樣:
use mysql;
delete from user where user='zebra' and host='%'; -- 這種方法是直接修改user表
flush privileges;
----------------或者------------------
drop user 'zebra'@'%';