MySQL数据库账号权限管理

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

前提条件

  • 数据库类型为RDS MySQLPolarDB MySQL版AnalyticDB for 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
  2. 登录目标数据库,详情请参见登录数据库

  3. 单击首页左侧的数据库实例,在实例列表中右键单击目标实例名称,再单击数据库账号管理

  4. 数据库账号管理页面,单击左上角的创建数据库账号

  5. 在弹出的窗口中,设置以下配置项。

    1. 单击基本设置页签,配置参数。

      image

      配置项

      说明

      数据库账号

      自定义登录数据库的账号。

      主机

      表示允许账号从某个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 '用户名'@'主机';

      对象权限界面

  6. 单击确认

  7. 预览SQL窗口,单击确认

    说明

    管控模式为安全协同的数据库实例会受安全规则限制,如无法执行请根据界面提示信息进行操作,或联系DBA、管理员进行确认。调整规则的具体操作步骤,请参见常见问题

编辑或删除账号

您可通过编辑账号功能实现修改权限账号的用户名密码、MySQL全局权限对象权限

  1. 登录数据管理DMS 5.0
  2. 单击首页左侧的数据库实例,在实例列表中右键单击目标实例名称,再单击数据库账号管理

  3. 找到目标账号,单击右侧的编辑删除,执行相关操作。

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

服务器管理

创建账号权限。

PROCESS

服务器管理

查看进程权限。

RELOAD

服务器管理

执行FLUSH-HOSTSFLUSH-LOGSFLUSH-PRIVILEGESFLUSH-STATUSFLUSH-TABLESFLUSH-THREADSREFRESHRELOAD等命令的权限。

REPLICATION CLIENT

服务器管理

复制权限。

REPLICATION SLAVE

服务器管理

复制权限。

SHOW DATABASES

服务器管理

查看数据库权限。

SHUTDOWN

服务器管理

关闭服务器权限。

SUPER

服务器管理

执行kill线程权限。

说明

RDS MySQLRDS MariaDB不支持SUPER权限。

MySQL对象权限

权限

权限对象

权限说明

CREATE

数据库、表或索引

创建数据库、表或索引权限。

DROP

数据库、表或视图

删除数据库、表或视图权限。

GRANT OPTION

数据库、表或保存的程序

赋予权限选项。

REFERENCES

数据库、表或列

外键权限。

LOCK TABLES

数据库

锁表权限。

EVENT

数据库

查询、创建、修改、删除MySQL事件的权限。

ALTER

表、视图

更改表或视图权限,比如添加字段、索引、修改字段等。

DELETE

删除数据权限。

INDEX

索引权限。

INSERT

表、列

插入权限。

SELECT

表、列

查询权限。

UPDATE

表、列

更新权限。

CREATE VIEW

视图

创建视图权限。

SHOW VIEW

视图

查看视图权限。

TRIGGER

触发器

创建、删除、执行、显示触发器的权限。

常见问题

Q:创建权限用户时,提示由于安全规则设置,禁止执行CREATE_USER命令创建权限用户,该怎样解决?error框

A:您需要根据错误提示框中的操作步骤解决此问题。具体操作如下:

  1. 查看实例绑定的安全规则集名称。

    您可在控制台首页左侧的实例列表中,找到目标实例,右键单击目标实例,单击查看详情

  2. 调整安全规则。

    1. 登录数据管理DMS 5.0

    2. 在顶部菜单栏中,选择安全与规范 > 安全规则

    3. 安全规则页签中,单击目标规则集操作列下的编辑

    4. 在左侧导航栏中,单击SQL变更

    5. 检测点选择SQL执行规则

    6. 选择允许所有DCL在SQL控制台直接执行安全规则,并单击操作列下的编辑

    7. 在编辑规则对话框的规则DSL区域,增加CREATE_USER SQL类型。DCL SQL

  3. 单击提交