mysql 命令 新建 user 用户 授权
-
创建用户
CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';
user_name:要创建用户的名字。
host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’
password:新创建用户的登陆数据库密码,如果没密码可以不写。
示例:
create user 'usa'@'%' identified by '123456';
-
授权用户
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL
databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 *.*,*是一个通配符,表示全部。
'username'@'host':表示授权给哪个用户。
用以上命令授权的用户不能给其他用户授权,如果想这个用户能够给其他用户授权,就要在后面加上 WITH GRANT OPTION
示例:
grant all on *.* to 'usa'@'%' with grant option;
-
删除用户
命令:DROP USER 'user_name'@'host'
示例:
drop user 'usa'@'%';//表示删除用户usa;
-
设置与更改用户密码
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是设置当前用户的密码:
SET PASSWORD = PASSWORD('newpassword');
示例:
set password for 'usa'@'%' =password('123456')
-
撤销用户权限
命令:REVOKE privileges ON database.tablename FROM 'username'@'host';
例如: REVOKE SELECT ON *.* FROM 'usa'@'%';
但注意:
若授予权利是这样写: GRANT SELECT ON *.* TO 'usa'@'%';
则用 REVOKE SELECT ON usa.product TO 'usa'@'%';是不能撤销用户usa 对 usa.product 中的SELECT 权利的。
反过来 GRANT SELECT ON usa.product TO 'usa'@'%';授予权力
用 REVOKE SELECT ON *.* FROM 'usa'@'%';也是不能用来撤销用户usa 对usa库的product表的SELECT 权利的