【MySQL4】DCL | 数据控制语言
一、DCL 概述DCL 全称Data Control Language 数据控制语言核心作用管控数据库访问权限解决两大核心问题哪些用户能够访问数据库每个用户拥有哪些操作权限DCL 分为两大模块用户管理、权限控制二、DCL 用户管理用户信息统一存储在mysql系统库的user表中所有用户操作都针对该表逻辑操作。1. 查询数据库所有用户sql-- 切换到mysql系统库 USE mysql; -- 查询全部用户信息 SELECT * FROM user;2. 创建用户语法sqlCREATE USER 用户名主机名 IDENTIFIED BY 密码;主机名说明localhost仅本机登录访问%任意远程主机都可访问示例sql-- 用户itcast仅本地登录密码123456 CREATE USER itcastlocalhost IDENTIFIED BY 123456; -- 用户heima任意主机可访问密码123456 CREATE USER heima% IDENTIFIED BY 123456;补充新创建的用户默认无任何数据库操作权限。3. 修改用户密码语法MySQL8.0 标准写法sqlALTER USER 用户名主机名 IDENTIFIED WITH mysql_native_password BY 新密码;示例sql-- 修改heima用户密码为1234 ALTER USER heima% IDENTIFIED WITH mysql_native_password BY 1234;4. 删除用户语法sqlDROP USER 用户名主机名;示例sql-- 删除本地itcast用户注意主机名不能写错 DROP USER itcastlocalhost;三、DCL 权限控制1. MySQL 常用权限列表表格权限关键字作用说明ALL拥有该库 / 表全部权限SELECT查询数据INSERT插入数据UPDATE修改数据DELETE删除数据CREATE创建库 / 表ALTER修改表结构DROP删除库 / 表2. 查询用户已有权限语法sqlSHOW GRANTS FOR 用户名主机名;示例sql-- 查看heima用户所有权限 SHOW GRANTS FOR heima%;3. 授予用户权限 GRANT语法sqlGRANT 权限列表 ON 数据库.表 TO 用户名主机名;通配符说明数据库.*指定数据库下所有表*.*所有数据库的所有表规则多个权限用逗号分隔示例sql-- 给heima授予itcast库下所有表的全部权限 GRANT ALL ON itcast.* TO heima%; -- 授予单表多个权限示例 GRANT SELECT,INSERT,UPDATE ON test.user TO heima%;4. 撤销用户权限 REVOKE语法sqlREVOKE 权限列表 ON 数据库.表 FROM 用户名主机名;示例sql-- 撤销heima在itcast库全部表的所有权限 REVOKE ALL ON itcast.* FROM heima%; -- 撤销指定多个权限 REVOKE DELETE,ALTER ON test.* FROM heima%;四、整体知识点总结1. 用户管理4 大操作查询用户USE mysql; SELECT * FROM user;创建用户CREATE USER 账号主机 IDENTIFIED BY 密码;修改密码ALTER USER 账号主机 IDENTIFIED WITH mysql_native_password BY 新密码;删除用户DROP USER 账号主机;2. 权限控制3 大操作查看权限SHOW GRANTS FOR 账号主机;授予权限GRANT 权限 ON 库.表 TO 账号主机;回收权限REVOKE 权限 ON 库.表 FROM 账号主机;