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

文章目录

    • DCL
      • 管理用户
        • 示例代码
      • 权限管理
        • 示例代码
        • 用户权限

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 允许用户创建触发器

你可能感兴趣的:(MySQL,sql,数据库,MySQL)