DCL 操作
文章目录
- 1.新建用户
- 2.删除用户
- 3.用户授权
- 4.撤销用户权限
- 5.查看用户权限
- 6.修改用户密码
1.新建用户
# 命令格式
CREATE USER [username]@[host] identified by [password];# 示例
CREATE USER lvlv@localhost identified by 'lvlv';
CREATE USER lvlv@192.168.1.1 identified by 'lvlv';
CREATE USER lvlv@"%" identified by 'lvlv';
CREATE USER lvlv@"%";
说明:
username – 你将创建的用户名;
host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%。
password – 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆MySQL服务器。
创建的用户用户信息存放于mysql.user数据表中。
2.删除用户
# 命令格式
DROP USER [username]@[host];# 示例
DROP USER lvlv@localhost;
说明:删除用户时,主机名要与创建用户时使用的主机名称相同。
3.用户授权
# 命令格式
GRANT [privileges] ON [databasename].[tablename] TO [username]@[host];# 示例
GRANT select ON *.* TO lvlv@'%';
GRANT ALL ON *.* TO lvlv@'%';# 最后不要忘了刷新权限
flush privileges;
privileges – 是一个用逗号分隔的赋予 MySQL 用户的权限列表,如 SELECT , INSERT , UPDATE 等(详细列表见该文末附录1)。如果要授予所有的权限则使用 ALL;databasename – 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*。
使用 GRANT 为用户授权时,如果指定的用户不存在,则会新建该用户并授权。设置允许用户远程访问 MySQL 服务器时,一般使用该命令,并指定密码。
GRANT SELECT ON *.* TO lvlv@'%' identified by '123456';
4.撤销用户权限
# 命令格式
REVOKE [privileges] ON [databasename].[tablename] FROM [username]@[host];# 示例
REVOKE SELECT ON *.* FROM lvlv@'%';
REVOKE ALL ON *.* FROM 'lvlv'@'%';
privilege, databasename, tablename – 同授权部分。
假如你在给用户'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'@'%';
查看。
5.查看用户权限
方法一:可以从 mysql.user 表中查看所有用户信息,包括用户的权限。
SELECT * FROM mysql.user WHERE user='username' \G
方法二:查看给用户的授权信息。
# 命令格式
show grants for [username]@[host];# 示例
show grants for lvlv@localhost;
show grants for lvlv;
说明:不指定主机名称,默认为任意主机"%"。
6.修改用户密码
方法一:使用SQL语句。
# 命令格式:
SET PASSWORD FOR [username]@[host]= PASSWORD([newpassword]);# 示例
SET PASSWORD FOR lvlv@localhost=PASSWORD('123456');
如果是当前登录用户:
SET PASSWORD = PASSWORD("newpassword");
方法二:使用服务端工具mysqladmin来修改用户密码。
# 命令格式
mysqladmin -u[username] -p[oldpassword] password [newpassword]# 示例
mysqladmin -ulvlv -p123456 password "123321"