SQL语句详解五-DCL(数据控制语言)

发布时间:2024年01月16日

DCL

  • 概述:DCL,数据库控制语言,用来管理用户和给用户授予权限的

管理用户

  1. 添加用户

    CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
    
  2. 删除用户

    DROP USER '用户名'@'主机名';
    
  3. 修改用户密码

    SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
    
  4. 查询用户

    • 首先切换到 MySQL 数据库
    USE mysql;
    
    • 查询 user 表
    SELECT * FROM USER;
    
  5. 通配符

    • % 表示可以在任意主机使用用户登录数据库
示例代码
-- 添加用户 lisi , 密码 lisi
CREATE USER 'lisi'@'localhost' IDENTIFIED BY 'lisi';

-- 查询用户
USE mysql;		-- 首先切换到 mysql 数据库
SELECT * FROM USER;	-- 查询当前数据库用户表,可看到 lisi 创建成功

-- 修改用户密码,在修改前,可通过命令框形式用 lisi 用户登录MySQL
SET PASSWORD FOR 'lisi'@'localhost' = PASSWORD('123');

-- 删除 lisi 用户
DROP USER 'lisi'@'localhost';

-- 查询用户
USE mysql;		-- 首先切换到 mysql 数据库
SELECT * FROM USER;	-- 查询当前数据库用户表,可看到 lisi 删除成功

-- 添加用户 heng ,密码 heng 在所有主机使用
CREATE USER 'heng'@'%' IDENTIFIED BY 'heng';

权限管理

  1. 查询权限

    -- 显示此主机此用户的权限
    SHOW GRANTS FOR '用户名'@'主机名';
    
  2. 授予权限

    -- 授予权限
    GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
    
  3. 撤销权限

    -- 撤销权限
    REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
    
示例代码
-- 显示 root 用户权限
SHOW GRANTS FOR 'root'@'localhost';

-- 显示 lisi 用户权限
SHOW GRANTS FOR 'lisi'@'localhost';

-- 显示 heng 用户权限
SHOW GRANTS FOR 'heng'@'%';

-- 授予 lisi 更新权限
GRANT UPDATE ON *.* TO 'lisi'@'localhost';

SHOW GRANTS FOR 'lisi'@'localhost';

-- 授予 heng 所有权限
GRANT ALL ON *.* TO 'heng'@'%';

SHOW GRANTS FOR 'heng'@'%';

-- 撤销 heng 用户所有权限
REVOKE ALL ON *.* FROM 'heng'@'%';

SHOW GRANTS FOR 'heng'@'%';

-- 撤销 lisi 用户更新权限
REVOKE UPDATE ON *.* FROM 'lisi'@'localhost';
SHOW GRANTS FOR 'lisi'@'localhost';

-- 删除 lisi heng 用户
DROP USER 'lisi'@'localhost';
DROP USER 'heng'@'%';

SELECT * FROM USER;

这里 *.* 代表,所有数据库的所有数据表

用户权限
权限关键字权限的作用
SELECT允许用户查询数据库中的数据
INSERT允许用户向数据库中插入新的数据
UPDATE允许用户修改数据库中现有的数据
DELETE允许用户从数据库中删除数据
CREATE允许用户创建新的数据库、表、索引等对象
DROP允许用户删除数据库、表、索引等对象
GRANT OPTION允许用户将自己拥有的权限授予其他用户
REFERENCES允许用户在表中创建外键约束
INDEX允许用户创建索引
ALTER允许用户修改表的结构
CREATE TEMPORARY TABLES允许用户创建临时表
LOCK TABLES允许用户锁定表
EXECUTE允许用户执行存储过程
CREATE VIEW允许用户创建视图
SHOW VIEW允许用户查看视图的定义
CREATE ROUTINE允许用户创建存储过程和函数
ALTER ROUTINE允许用户修改存储过程和函数
EVENT允许用户创建、修改、删除事件
TRIGGER允许用户创建触发器
文章来源:https://blog.csdn.net/weixin_45754463/article/details/135631892
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。