Loading

MySQL学习笔记-数据控制语言

SQL-数据控制语言(DCL)

DCL语句用于管理数据库用户,控制数据库的访问权限

一. 管理用户

1. 查询用户

# 访问mysql数据库
use mysql;

#查询user表
select * from user;
  • 主机地址(Host)和用户名一起才能完整定位用户。
  • 主机地址(Host)指当前用户只能够在哪个主机上访问服务器。

image-20230225200315375

2. 创建用户

create user {'用户名'}@{'主机名'} identified by {'密码'};
  • 用户名、主机名、密码需要引号。
  • 主机名为 '%' (通配符)时表示可以在任意主机访问。

实践时出现密码强度不够不给创建用户的情况,

image-20230225201139320

去学习了如何改密码限制:

# 查看当前安全变量值
SHOW VARIABLES LIKE 'validate_password%';

# 修改变量
set global validate_password.policy=0;
set global validate_password.length=4;

image-20230225201409718

# terminal执行
mysql_secure_installation

这样就可以设置成'123456'这种弱密码了。

image-20230225201808187

3. 修改用户密码

alter user {'用户名'}@{'主机名'} identified with mysql_native_password by {'新密码'};

image-20230225201952306

4. 删除用户

drop user {'用户名'}@{'主机名'};

image-20230225202023417

二. 权限控制

  • 用户在刚创建时候默认没有权限,需要授予权限后才能使用。
  • 常用权限:

image-20230225195231036

  • 多个权限之间,使用逗号分隔。
  • 授权时,数据库名和表名可以使用 * 进行通配,表示所有。

1. 查询权限

show grants for {'用户名'}@{'主机名'};

image-20230225202233230

2. 授予权限

grant {权限列表} on {数据库名}.{表名} to {'用户名'}@{'主机名'};
  • {数据库名}.{表名} 为 * .* 时为全部数据库全部表。

image-20230225202158879

3. 撤销权限

revoke {权限列表} on {数据库名}.{表名} from {'用户名'}@{'主机名'};

image-20230225202342316

posted @ 2023-02-25 20:28  YellowSeaa  阅读(34)  评论(0编辑  收藏  举报