DMS支持细粒度(库、表、列、视图等)级别的MySQL数据库账号权限管控。本文向您介绍如何在DMS中管理MySQL数据库账号权限。

前提条件

  • 数据库引擎为RDS MySQL、PolarDB MySQL或自建MySQL。
  • 不同管控模式下的角色要求:
    管控模式 角色要求
    安全协同 管理员、DBA或对应的实例Owner。
    稳定变更 无。
    自由操作 无。

功能介绍

您可以在RDS MySQL、PolarDB MySQL控制台上对数据库大分类组合权限(例如只读、读写、仅DML、仅DDL)进行便捷地管理与维护,但对于自定义各种权限类型组合或授予某些表级别权限等场景,您可以通过DMS推出的数据库账号权限管理功能进行灵活管控。例如:

  • 给A用户授予全局SELECTUPDATE权限。
    说明 全局权限作用于整个数据库实例级别,关于更多的全局权限类型介绍请参见MySQL全局权限
  • 给B用户授予单张表的SELECT权限或某一列的UPDATE权限。
    说明 对象权限作用范围可以是所有数据库对象,也可以指定单个或多个数据库对象,关于更多的对象权限类型介绍请参见MySQL对象权限

创建用户

  1. 登录DMS控制台
  2. 在左上角的导航栏搜索框中输入目标数据库名称,在搜索栏下方的DMS对象列表中找到目标实例。
  3. 右键单击目标实例,在弹出的列表中选择账号管理
    账号管理按钮
  4. 账号管理页面,单击左上角的创建用户按钮。
  5. 在弹出的窗口中,设置以下配置项。
    1. 单击基本设置页签,配置参数。
      创建用户界面
      配置项 说明
      用户名 请输入账号用户名。
      主机 请输入用户连接MySQL时所在主机的名字,默认为%
      密码 请输入登录口令。
      确认密码 请再次输入登录口令。
      说明 上述配置项的SQL语句格式为CREATE USER `用户名`@`主机名` IDENTIFIED BY `登录口令`;

      如果您需要配置高级选项,请单击高级选项按钮,并进行配置。

      例如按照下图进行配置的SQL示例为:
      GRANT USAGE ON *.* TO '用户名'@'主机名' WITH MAX_QUERIES_PER_HOUR 100 MAX_UPDATES_PER_HOUR 200 MAX_CONNECTIONS_PER_HOUR 300 MAX_USER_CONNECTIONS 400;
      高级选项界面
    2. 单击全局权限页签,勾选目标权限。
      全局对象界面
    3. 单击对象权限页签,配置参数。
      例如按照下图进行配置的SQL示例为:
      GRANT SELECT,INSERT ON `rds_db`.* TO '用户名'@'主机名'; 
       GRANT DELETE ON `rds_db`.`rds_table` TO '用户名'@'主机名';
      对象权限界面
  6. 单击确认
  7. 预览SQL窗口,单击确认
    说明 管控模式为安全协同的数据库实例会受安全规则限制,如无法执行请根据界面提示信息进行操作,或联系DBA、管理员进行确认。

编辑用户

  1. 登录DMS控制台
  2. 在左上角的导航栏搜索框中输入目标数据库名称,在搜索栏下方的DMS对象列表中找到目标实例。
  3. 右键单击目标实例,在弹出的列表中选择账号管理
  4. 单击目标用户右侧操作列下的编辑即可进行编辑。
    数据库账号权限管理-编辑按钮

删除用户

  1. 登录DMS控制台
  2. 在左上角的导航栏搜索框中输入目标数据库名称,在搜索栏下方的DMS对象列表中找到目标实例。
  3. 右键单击目标实例,在弹出的列表中选择账号管理
  4. 单击目标用户右侧操作列下的删除
  5. 在新弹窗中,单击确认即可删除用户。

MySQL全局权限

权限 权限对象 权限说明
CREATE 数据库、表或索引 创建数据库、表或索引权限。
DROP 数据库、表或视图 删除数据库或表权限。
GRANT OPTION 数据库、表或保存的程序 赋予权限选项。
REFERENCES 数据库、表或列 外键权限。
LOCK TABLES 数据库 锁表权限。
EVENT 数据库 查询、创建、修改、删除MySQL事件的权限。
ALTER 表、视图 更改表,比如添加字段、索引、修改字段等。
DELETE 删除数据权限。
INDEX 索引权限。
INSERT 表、列 插入权限。
SELECT 表、列 查询权限。
UPDATE 表、列 更新权限。
CREATE VIEW 视图 创建视图权限。
SHOW VIEW 视图 查看视图权限。
TRIGGER 触发器 创建、删除、执行、显示触发器的权限。
ALTER ROUTINE 存储过程 更改存储过程权限。
CREATE ROUTINE 存储过程 创建存储过程权限。
EXECUTE 存储过程 执行存储过程权限。
FILE 服务器主机上的文件访问 文件访问权限。
CREATE TEMPORARY TABLES 服务器管理 创建临时表权限。
CREATE USER 服务器管理 创建用户权限。
PROCCESS 服务器管理 查看进程权限。
RELOAD 服务器管理 执行FLUSH-HOSTSFLUSH-LOGSFLUSH-PRIVILEGESFLUSH-STATUSFLUSH-TABLESFLUSH-THREADSREFRESHRELOAD等命令的权限。
REPLICATION CLIENT 服务器管理 复制权限。
REPLICATION SLAVE 服务器管理 复制权限。
SHOW DATABASES 服务器管理 查看数据库权限。
SHUTDOWN 服务器管理 关闭数据库权限。
SUPER 服务器管理 执行kill线程权限。

MySQL对象权限

权限 权限对象 权限说明
CREATE 数据库、表或索引 创建数据库、表或索引权限。
DROP 数据库、表或视图 删除数据库或表权限。
GRANT OPTION 数据库、表或保存的程序 赋予权限选项。
REFERENCES 数据库、表或列 外键权限。
LOCK TABLES 数据库 锁表权限。
EVENT 数据库 查询、创建、修改、删除MySQL事件的权限。
ALTER 表、视图 更改表,比如添加字段、索引、修改字段等。
DELETE 删除数据权限。
INDEX 索引权限。
INSERT 表、列 插入权限。
SELECT 表、列 查询权限。
UPDATE 表、列 更新权限。
CREATE VIEW 视图 创建视图权限。
SHOW VIEW 视图 查看视图权限。
TRIGGER 触发器 创建、删除、执行、显示触发器的权限。