⑤ 【MySQL】DCL语句 —— 用户管理、权限控制

2023-11-14 09:28:13 浏览数 (4)

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~

⑤ 【MySQL】DCL语句 —— 用户管理、权限控制

  • SQL分类
    • DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)
    • DML:数据操作语言,用来对数据库表中字段进行增删改
    • DQL:数据查询语言,用来查询数据库中表的记录
    • DCL:数据控制语言,用来创建数据库用户,控制数据库的访问权限

DCL - 管理用户

MySQL用户管理

①查询用户

代码语言:javascript复制
USE mysql;
SELECT * FROM USER;

②创建用户

代码语言:javascript复制
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
代码语言:javascript复制
-- 实例:

-- 创建用户 private_user,只能在当前主机访问,密码123456
CREATE USER 'private_user'@'localhost' IDENTIFIED BY '123456';

-- 创建用户 public_user,可以在任意主机访问数据库,密码123456
CREATE USER 'public_user'@'%' IDENTIFIED BY '123456';

③修改用户密码

代码语言:javascript复制
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

④删除用户

代码语言:javascript复制
DROP USER '用户名'@'主机名';

注意:

  • 主机名可以使用%通配。
  • 这类SQL开发人员使用较少,主要是DBA(DataBase Administrator 数据库管理员)使用。

DCL - 权限控制

常用权限分类:

  • ALLALL PRIVILEGES:所有权限
  • SELECT:查询数据的权限
  • INSERT:插入数据的权限
  • UPDATE:修改数据的权限
  • DELETE:删除数据的权限
  • ALTER:修改表的权限
  • DROP:删除数据库/表/视图的权限
  • CREATE:创建数据库/表的权限

MySQL控制用户权限:

①查询权限

代码语言:javascript复制
SHOW GRANTS FOR '用户名'@'主机名';

②授予权限

代码语言:javascript复制
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

③撤销权限

代码语言:javascript复制
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意:

  • ①多个权限之间,使用逗号,分隔。
  • ②授权时,数据库名和表名可以使用*进行通配,代表所有。

0 人点赞