005 学习笔记--DCL(权限控制)

发布时间 2023-06-30 14:48:55作者: sunwugang

DCL:Data Control Language 数据控制语言,用于管理数据库该用户、控制数据库的访问权限。

  1. 查询用户
    • use mysql;  -- mysql,为系统数据库
    • select * from user;
  2. 创建用户
    • create user '用户名'@'主机名' identified by '密码'
  3. 修改用户密码
    • alter user '用户名'@'主机名' idengified with mysql_native_password by '新密码';
  4. 删除用户
    • drop user '用户名'@'主机名'

 注:

  1. 创建用户时,主机名可使用%通配,表示任意主机都可访问;
  2. 该操作一般多为DBA使用,开发人员较少使用;

示例如下:

-- ----------------------------用户操作相关-----------------------------
use mysql; select * from user; -- show grants for 'root'@'%'; -- 创建用户 create user 'kun'@'192.168.1.110' identified by '1'; -- 如果想选择任意主机地址 -- create user '用户名'@'%' identified by '密码'; -- 修改用户密码 alter user 'kun'@'192.168.1.110' identified with mysql_native_password by '123'; -- 删除用户 drop user 'kun'@'192.168.1.110'; -- 选择任意主机地址 create user 'kun'@'%' identified by '1'; select * from user;

DCL 权限控制    

  1.  查询权限
    • show grants for '用户名'@'主机名';  
    • show grants for '用户名'@'%';   —— % 表示所有主机
  2. 授予权限
    • grant 授权列表 on 数据库名 表名 to   '用户名'@'主机名';  
    • 注,授权所有用户可使用--show grants for *.*
  3. 撤销权限
    • revoke 授权列表 on 数据库名 表名 from  '用户名'@'主机名';  ——撤销某个用户对某个数据库的某张表的权限

示例如下:

-- ----------------------------权限操作相关-----------------------------
-- 1.查询权限
show grants for 'kun'@'%';
-- 返回结果:GRANT USAGE ON *.* TO `kun`@`%`

-- 2.授予权限
grant all on rfautotest.remarkinfo to 'kun'@'%';  -- 授予访问rfautotest.remarkinfo
show grants for 'kun'@'%'
/*
return
GRANT USAGE ON *.* TO `kun`@`%`
GRANT ALL PRIVILEGES ON `rfautotest`.`remarkinfo` TO `kun`@`%`
*/

grant all on rfautotest.* to 'kun'@'%';  -- 授予访问rfautotest 数据库操作权限
show grants for 'kun'@'%'
/*
return 
GRANT USAGE ON *.* TO `kun`@`%`
GRANT ALL PRIVILEGES ON `rfautotest`.* TO `kun`@`%`
GRANT ALL PRIVILEGES ON `rfautotest`.`remarkinfo` TO `kun`@`%`
*/

-- 3.撤销权限
-- revoke 授权列表 on 数据库名 表名 from  '用户名'@'主机名';
revoke all on rfautotest.remarkinfo from  'kun'@'%';
revoke all on rfautotest.* from  'kun'@'%';
-- revoke all on *.* from  'kun'@'%';   -- *.* 表示所有权限
show grants for 'kun'@'%'
-- 返回结果:GRANT USAGE ON *.* TO `kun`@`%`