[MySQL]DCL语句
DCL指的是用来管理数据库用户、控制数据库的访问权限的语句。
查询用户
用户信息存储在mysql系统库的user表里,在root用户(高级权限用户)操作时可以直接查看该表的信息,下列是查询用户信息的语句
SELECT * FROM mysql.user;
创建用户
CREATE USER 用户名@IP限制 IDENTIFIED BY '密码';
# 其中,ip限制分为两种,分别为localhost和% ,且%书写时需要加上单引号,local不用
CREATE USER 用户名@'%' IDENTIFIED BY '密码';
localhost表示本机,只有在本机操作时才能够登录上该用户。而%则表示所有,可以通过网络链接从其他设备登录上该用户。 root用户的ip限制就是localhost。
用户授权
授予用户权限
GRANT 权限1, … , 权限n ON 数据库名.表名 TO 用户名;
权限分为很多种,具体的可以前往MySQL的官方文档查看:
其中,表名可以使用*替代,代表该数据库下的所有表,但不能只写数据库名,必须使用" * "表示所有表。
不能单独对列进授权。
撤销用户权限
REVOKE 权限1, … , 权限n ON 数据库名.表名 FORM 用户名;
查看用户权限
SHOW GRANTS FOR 用户名;
修改用户密码
#首先,我们需要跳转到系统库mysql下
USE mysql;
UPDATE USER SET authentication_string=PASSWORD('密码') WHERE User='用户名' and Host='IP';
FLUSH PRIVILEGES;//让修改立刻生效
# 在自己学习时可能不需要用到FLUSH PRIVILEGES , 但在正式的项目运营维护中,这是必须的。
删除用户
DROP USER 用户名@ip限制;