SQL语句开发之常见的DCL

初始SQL

  • 什么是SQL:一种描述性语言
  • SQL语言的作用:对存储在RDBMS中的数据进行增删改查等操作
  • 常用的SQL语言的种类:DCL(数据库管理类语言)、DDL(数据定义类语言)、DML(数据操作语句)、TCL(事务控制类语言)

访问权限

DCL(Data Control Language)

  • 简历数据库账号 :create user
  • 对用户授权:grant
  • 收回用户权限:revoke

任务一:建立程序使用的数据库账号

xsZBW4

create user mc_class@'172.16.31.%' identified with 'mysql_native_password' by '123456' with max_user_connections 1;

测试案例:测试用户最大连接数量为1

mysql -umc_class -p -h172.16.31.135

tNknwS

新开窗口,继续创建连接.直接发现报错信息。max_user-connections 当前设置值为1

bthJ54

任务二:给账号授权

  • MySQL的常见权限
权限名称 说明
Insert 向表中插入数据的权限
Delete 删除表中数据的权限
update 修改表中数据的权限
select 查询表中数据的权限
execute 执行存储过程的权限

PbWk10

J7XeqN

举个栗子

# 给用户mc_class授权mysql.user表上的user和host列的查询权限
grant select(user,host) on mysql.user to mc_class@'192.168.1.%';
# 给用户mc_class授予mysql.user表上所有列的查询权限
grant select on mysql.user to mc_class@'192.168.1.%';
# 给用户mc_class授权mysql库下所有表对象的查询权限
grant select on mysql.* to mc_class@'192.168.1.%';
#给用户mc_class授权mysql库下所有表对象的查询/更新/删除权限
grant select,update,delete on mysql.* to mc_class@'192.168.1.%';

GRANT命令的注意事项

  • 使用grant授权的数据库账号必须存在
select user,host from mysql.user;

dM3jKL

# 192.168.32.%这个网段在授权列表中并不存在,于是直接报错
grant select on mysql.user to mc_class@'192.168.32.%';

CJgs1V

  • 用户使用grant命令授权必须具有grant option的权限
  • 获取命令帮助 \h grant

任务三:回收用户权限

6uE655

  • 查看某用户授予的权限信息列表
show grants for mc_class@'172.16.31.%';

g11I2b

  • 授予某用户对于某表下的某种权限
# 授予mc_class用户mysql库下所有表的查找/删除/增加/更新命令
grant select,delete,insert,update on mysql.* to mc_class@'172.16.31.%'

XPrTu4

  • 登录授权账号查看权限信息

ztYxQm

  • 回收某用户对于某表下的某种权限
# 回收mc_class删除/增加/更新权限,仅保留查询权限
revoke delete,insert,update on mysql.* from mc_class@'172.16.31.%'

ckNT5R

猜你喜欢

转载自www.cnblogs.com/shine-rainbow/p/13162284.html