MySQL学习笔记-数据控制语言
SQL-数据控制语言(DCL)
DCL语句用于管理数据库用户,控制数据库的访问权限
一. 管理用户
1. 查询用户
# 访问mysql数据库
use mysql;
#查询user表
select * from user;
- 主机地址(Host)和用户名一起才能完整定位用户。
- 主机地址(Host)指当前用户只能够在哪个主机上访问服务器。
2. 创建用户
create user {'用户名'}@{'主机名'} identified by {'密码'};
- 用户名、主机名、密码需要引号。
- 主机名为 '%' (通配符)时表示可以在任意主机访问。
实践时出现密码强度不够不给创建用户的情况,
去学习了如何改密码限制:
# 查看当前安全变量值
SHOW VARIABLES LIKE 'validate_password%';
# 修改变量
set global validate_password.policy=0;
set global validate_password.length=4;
# terminal执行
mysql_secure_installation
这样就可以设置成'123456'这种弱密码了。
3. 修改用户密码
alter user {'用户名'}@{'主机名'} identified with mysql_native_password by {'新密码'};
4. 删除用户
drop user {'用户名'}@{'主机名'};
二. 权限控制
- 用户在刚创建时候默认没有权限,需要授予权限后才能使用。
- 常用权限:
- 多个权限之间,使用逗号分隔。
- 授权时,数据库名和表名可以使用 * 进行通配,表示所有。
1. 查询权限
show grants for {'用户名'}@{'主机名'};
2. 授予权限
grant {权限列表} on {数据库名}.{表名} to {'用户名'}@{'主机名'};
- {数据库名}.{表名} 为 * .* 时为全部数据库全部表。
3. 撤销权限
revoke {权限列表} on {数据库名}.{表名} from {'用户名'}@{'主机名'};