当您需要在数据管理DMS创建MySQL、MongoDB或PostgreSQL的数据库账号,或自定义各种权限类型组合或授予某些表级别权限时,您可以通过DMS的数据库账号权限管理功能进行灵活管控。本文为您介绍如何在DMS中创建、编辑和删除数据库账号,以及管理数据库账号权限。
目前DMS仅支持管理MySQL、PostgreSQL、MongoDB三种引擎的数据库账号,其他引擎的数据库账号管理,请前往对应的控制台进行操作。
前提条件
数据库类型为:
MySQL:RDS MySQL、PolarDB MySQL版、AnalyticDB for MySQL、自建MySQL、自建MariaDB或RDS MariaDB。
MongoDB。
说明若您在Admin数据库下创建用户,需保证已有的任一用户具有创建用户的权限(dbAdminAnyDatabase、userAdmin或userAdminAnyDatabase等权限)。
PostgreSQL:RDS PostgreSQL或AnalyticDB for PostgreSQL。
系统角色为管理员、DBA或普通用户(实例Owner)。更多信息,请参见系统角色。
已获取目标数据库的数据库账号和数据库密码。
如果您需要在DMS控制台创建账号,需确保登录DMS的数据库账号具有创建用户的权限。
账号权限管控示例
管理数据库账号
创建数据库账号
通过DMS创建的数据库账号是普通账号。
DMS 管理员是 RAM 账号,管理 DMS 控制台的访问权限和操作审批。数据库高权限账号是数据库实例层面的账号,拥有 CREATE USER、GRANT 等数据库操作权限。两者是不同的权限体系:在 DMS 中执行 CREATE USER 等数据库管理操作时,需要使用数据库高权限账号,DMS 管理员本身不拥有数据库层面的操作权限。
如果在 DMS 中执行 CREATE USER 时遇到以下报错:
execute create_user failed: you need (at least one of) the create user privilege for this operation请按以下方式排查:
在 RDS 控制台创建高权限账号,使用该账号登录 DMS 后重新操作。
或直接在 RDS 控制台的账号管理页面创建数据库用户。
如果 DMS 实例开启了安全托管模式,可能无法在 DMS 中切换数据库账号。此时需要在 RDS 控制台创建账号,或调整实例的安全托管设置后再操作。
创建MySQL数据库账号
登录数据管理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;
单击全局权限页签,勾选目标权限。全局权限的说明,请参见MySQL全局权限。
说明若您使用普通账号在权限类型中未找到目标权限,可能由于账号权限或实例类型不支持该权限。若由于账号权限不足原因,可使用高权限账号重试。
单击对象权限页签,配置参数。对象权限的说明,请参见MySQL对象权限。
例如按照下图进行配置的SQL示例为:
GRANT SELECT,INSERT ON `rds_db`.* TO '用户名'@'主机'; GRANT DELETE ON `rds_db`.`rds_table` TO '用户名'@'主机';
单击确认。
在预览SQL窗口,单击确认。
说明管控模式为安全协同的数据库实例会受安全规则限制,如无法执行请根据界面提示信息进行操作,或联系DBA、管理员进行确认。调整规则的具体操作步骤,请参见常见问题。
创建MongoDB数据库账号
登录数据管理DMS 5.0。
登录目标数据库,详情请参见登录数据库。
重要对于MongoDB副本集实例,需要登录Primary(主)节点。
-
单击首页左侧的数据库实例,在实例列表中右键单击目标实例名称,再单击数据库账号管理。
单击页面左上角的创建数据库账号,配置以下信息。
设置用户信息。

配置项目
说明
目标库
下拉选择该用户所属的目标数据库。
说明目标库选择为非admin库时,创建的用户为普通用户。
目标库选择为admin库时,创建的用户为高权限用户。
用户名
设置用户的名称。
不支持中文。
支持英文、数字和特殊字符。
特殊字符包括:
!#$%^&*()_+-=
密码
设置用户的密码。
为保障数据安全性,建议设置的密码至少由如下三种字符组成,且长度为8-32位:
大写字母
小写字母
数字
特殊字符(
!#$%^&*()_+-=)
确认密码
再次输入密码。
设置用户的权限信息。
说明当目标库选择为admin库时:
在当前库权限页签,可以设置普通操作角色、管理员操作角色、实例级别操作角色、集群管理员角色、备份与恢复操作角色、超级角色等权限,角色权限详情请参见MongoDB角色权限。
也可以选择其他库权限页签,并添加数据库名及设置对应数据库的角色权限。
当目标库选择为非admin库时:
在当前库权限页签,只能设置当前库普通操作角色和管理员操作角色,角色权限详情请参见MongoDB角色权限。
无其他库权限页签的设置权限。
单击确认。
说明管控模式为安全协同的数据库实例会受安全规则限制,如无法执行请根据界面提示信息进行操作,或联系DBA、管理员进行确认。
创建PostgreSQL数据库账号
登录数据管理DMS 5.0。
登录目标数据库,详情请参见登录数据库。
单击首页左侧的数据库实例,在实例列表中右键单击目标实例名称,再单击数据库账号管理。
在数据库账号管理页面,单击左上角的创建数据库账号。
在弹出的窗口中,设置以下配置项。
单击基本设置页签,配置参数。
配置项
说明
用户名
输入账号用户名。
密码
输入登录密码。
确认密码
再次输入登录密码。
密码过期时间
选择密码的过期时间,例如选择2021年12月30号0点过期,该密码会在该时间点失效。
该参数非必选,默认为不失效。
连接数限制
输入该账号的连接并发数,例如您配置了10,表示该账号最多允许在10个客户端上同时连接数据库。
默认为-1,表示不限制。
备注
填写该账号的备注信息。
单击权限页签,勾选目标权限。
权限类型
说明
允许登录
登录权限,对应的SQL命令为
LOGIN和NOLOGIN,默认为允许登录。允许创建用户
创建数据库账号的权限,对应的SQL命令为
CREATEROLE和NOCREATEROLE,默认为允许创建用户。允许创建DB
创建数据库的权限,对应的SQL命令为
CREATEDB和NOCREATEDB,默认为允许创建数据库。
单击确认。
在预览SQL窗口,单击确认。
说明管控模式为安全协同的数据库实例会受安全规则限制,如无法执行请根据界面提示信息进行操作,或联系DBA、管理员进行确认。调整规则的具体操作步骤,请参见权限说明。
编辑或删除账号
您可通过编辑账号功能实现修改权限账号的用户名、密码、MySQL全局权限和对象权限。
登录数据管理DMS 5.0。
单击首页右侧的数据库实例,在实例列表中右键单击目标实例名称,再单击数据库账号管理。
找到目标账号,单击右侧的编辑或删除,执行相关操作。
编辑或删除账号
您可通过编辑账号功能实现修改权限账号的用户名、密码、MySQL全局权限和对象权限。
登录数据管理DMS 5.0。
-
单击首页左侧的数据库实例,在实例列表中右键单击目标实例名称,再单击数据库账号管理。
找到目标账号,单击右侧的编辑或删除,执行相关操作。
切换数据库账号
登录数据管理DMS 5.0。
在左侧的数据库实例区域,找到目标实例。
右键单击实例名称,选择编辑实例。
在基本信息区域填写需要登录的数据库账号以及对应的账号密码。
单击保存。
增加或删除数据库账号权限
登录数据管理DMS 5.0。
-
单击首页左侧的数据库实例,在实例列表中右键单击目标实例名称,再单击数据库账号管理。
找到目标账号,单击右侧的编辑。
在权限区域,增加(勾选目标权限)或删除(取消勾选目标权限)账号权限,单击确认。
权限说明
MySQL全局权限
MySQL对象权限
MongoDB角色权限
相关文档
常见问题
Q:创建权限用户时,提示由于安全规则设置,禁止执行CREATE_USER命令创建权限用户,该怎样解决?
A:您需要根据错误提示框中的操作步骤解决此问题。具体操作如下:
查看实例绑定的安全规则集名称。
您可在控制台首页左侧的实例列表中,找到目标实例,右键单击目标实例,单击查看详情。
调整安全规则。
登录数据管理DMS 5.0。
在顶部菜单栏中,选择。
在安全规则页签中,单击目标规则集操作列下的编辑。
在左侧导航栏中,单击SQL变更。
检测点选择SQL执行规则。
选择允许所有DCL在SQL控制台直接执行安全规则,并单击操作列下的编辑。
在编辑规则对话框的规则DSL区域,将规则修改为:
if @fac.sql_type in ["DCL"] then @act.allow_execute_direct end。该写法按 DCL 大类匹配,覆盖
CREATE USER、GRANT等所有 DCL 语句,无需逐一列举 SQL 类型。其中,allow_execute_direct表示允许在 SQL 控制台直接执行;allow_submit表示仅允许提交工单审批后执行,两者放行力度不同,请按实际需求选择。
单击提交。
检查风险识别规则。在SQL变更 > 风险识别规则中,确认是否存在将 DCL 标记为高风险的规则。若存在,需禁用或调整该规则,否则会覆盖上一步设置的 DCL 放行规则,导致规则修改后仍不生效。
仅安全协同模式的实例支持编辑安全规则;自由操作和稳定变更模式使用系统内置规则,不支持编辑。若目标实例不是安全协同模式,需购买安全协同许可证并切换管控模式后才能按上述步骤修改规则。此外,请确认所修改的规则集已关联目标实例,否则修改不会生效。