DMS支持细粒度(库、表、列、视图等)级别的MySQL数据库账号权限管控。本文向您介绍如何在DMS中管理MySQL数据库账号权限。
前提条件
数据库类型为RDS MySQL、PolarDB MySQL版、AnalyticDB for MySQL、自建MySQL、MariaDB或RDS MariaDB。
您的用户角色为管理员、DBA或普通用户(实例Owner),更多信息,请参见系统角色。
已获取目标数据库的数据库账号和数据库密码。
功能介绍
您可以在RDS MySQL、PolarDB MySQL版控制台上对数据库大分类组合权限(例如只读、读写、仅DML、仅DDL)进行便捷地管理与维护,但对于自定义各种权限类型组合或授予某些表级别权限等场景,您可以通过DMS推出的数据库账号权限管理功能进行灵活管控。例如:
创建账号
- 登录数据管理DMS 5.0。
登录目标数据库,详情请参见登录数据库。
单击首页左侧的数据库实例,在实例列表中右键单击目标实例名称,再单击数据库账号管理。
在数据库账号管理页面,单击左上角的创建数据库账号。
在弹出的窗口中,设置以下配置项。
单击基本设置页签,配置参数。
配置项
说明
数据库账号
自定义登录数据库的账号。
主机
表示允许账号从某个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;
单击全局权限页签,勾选目标权限。
说明若您使用普通账号在权限类型中未找到目标权限,可能由于账号权限或实例类型不支持该权限。若由于账号权限不足原因,可使用高权限账号重试。
单击对象权限页签,配置参数。
例如按照下图进行配置的SQL示例为:
GRANT SELECT,INSERT ON `rds_db`.* TO '用户名'@'主机'; GRANT DELETE ON `rds_db`.`rds_table` TO '用户名'@'主机';
单击确认。
在预览SQL窗口,单击确认。
说明管控模式为安全协同的数据库实例会受安全规则限制,如无法执行请根据界面提示信息进行操作,或联系DBA、管理员进行确认。调整规则的具体操作步骤,请参见常见问题。
编辑或删除账号
您可通过编辑账号功能实现修改权限账号的用户名、密码、MySQL全局权限和对象权限。
- 登录数据管理DMS 5.0。
单击首页左侧的数据库实例,在实例列表中右键单击目标实例名称,再单击数据库账号管理。
找到目标账号,单击右侧的编辑或删除,执行相关操作。
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 | 服务器管理 | 执行 |
REPLICATION CLIENT | 服务器管理 | 复制权限。 |
REPLICATION SLAVE | 服务器管理 | 复制权限。 |
SHOW DATABASES | 服务器管理 | 查看数据库权限。 |
SHUTDOWN | 服务器管理 | 关闭服务器权限。 |
SUPER | 服务器管理 | 执行kill线程权限。 说明 RDS MySQL与RDS 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命令创建权限用户,该怎样解决?
A:您需要根据错误提示框中的操作步骤解决此问题。具体操作如下:
查看实例绑定的安全规则集名称。
您可在控制台首页左侧的实例列表中,找到目标实例,右键单击目标实例,单击查看详情。
调整安全规则。
登录数据管理DMS 5.0。
在顶部菜单栏中,选择
。在安全规则页签中,单击目标规则集操作列下的编辑。
在左侧导航栏中,单击SQL变更。
检测点选择SQL执行规则。
选择允许所有DCL在SQL控制台直接执行安全规则,并单击操作列下的编辑。
在编辑规则对话框的规则DSL区域,增加CREATE_USER SQL类型。
单击提交。