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

前提条件

  • 数据库类型为RDS MySQL、PolarDB MySQL引擎、AnalyticDB MySQL、自建MySQL、MariaDB或RDS MariaDB。
  • 您的用户角色为管理员、DBA或普通用户(实例Owner),更多信息,请参见系统角色

功能介绍

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

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

创建账号

  1. 登录数据管理DMS 5.0
    说明 如果您需要切换到旧版数据管理DMS,单击页面右下角返回旧版,进入数据管理DMS平台。具体操作,请参见数据管理DMS 5.0切换至旧版
  2. 在顶部菜单栏中,选择SQL窗口 > SQL窗口
    说明 如果您使用的是旧版数据管理DMS,请跳过步骤2和步骤3。
  3. 请先选择数据库弹框中,搜索并选择数据库,单击确认
  4. 在DMS左侧的实例列表中,右键单击目标实例,从弹出的列表中选择账号管理
  5. 账号管理页面,单击左上角的创建用户按钮。
  6. 在弹出的窗口中,设置以下配置项。
    1. 单击基本设置页签,配置参数。
      创建用户界面
      配置项 说明
      用户名 自定义登录数据库的账号。
      主机 表示允许账号从哪些IP地址访问数据库,多个IP地址使用逗号(,)分隔。
      说明 如果不填该配置项,表示不指定账号从特定的IP地址访问数据库,系统的默认值为%
      密码 请输入登录密码。
      确认密码 请再次输入登录密码。
      说明 上述配置项的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 '用户名'@'主机';
      对象权限界面
  7. 单击确认
  8. 预览SQL窗口,单击确认
    说明 管控模式为安全协同的数据库实例会受安全规则限制,如无法执行请根据界面提示信息进行操作,或联系DBA、管理员进行确认。

编辑或删除账号

  1. 登录数据管理DMS 5.0
    说明 如果您需要切换到旧版数据管理DMS,单击页面右下角返回旧版,进入数据管理DMS平台。具体操作,请参见数据管理DMS 5.0切换至旧版
  2. 在顶部菜单栏中,选择SQL窗口 > SQL窗口
    说明 如果您使用的是旧版数据管理DMS,请跳过步骤2和步骤3。
  3. 请先选择数据库弹框中,搜索并选择数据库,单击确认
  4. 在DMS左侧的实例列表中,右键单击目标实例,从弹出的列表中选择账号管理
  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 触发器 创建、删除、执行、显示触发器的权限。