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

SQL-数据控制语言(DCL)

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

一. 管理用户#

1. 查询用户#

# 访问mysql数据库
use mysql;

#查询userselect * 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

作者:YellowSea

出处:https://www.cnblogs.com/yellowsea/p/17155303.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   YellowSeaa  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示