全部产品
Search
文档中心

数据管理 DMS:管理数据库账号及账号权限

更新时间:Aug 28, 2026

当您需要在数据管理DMS创建MySQL、MongoDB或PostgreSQL的数据库账号,或自定义各种权限类型组合或授予某些表级别权限时,您可以通过DMS的数据库账号权限管理功能进行灵活管控。本文为您介绍如何在DMS中创建、编辑和删除数据库账号,以及管理数据库账号权限。

说明

目前DMS仅支持管理MySQL、PostgreSQL、MongoDB三种引擎的数据库账号,其他引擎的数据库账号管理,请前往对应的控制台进行操作。

前提条件

  • 数据库类型为:

    • MySQL:RDS MySQLPolarDB MySQL版、AnalyticDB for MySQL、自建MySQL、自建MariaDB或RDS MariaDB

    • MongoDB

      说明

      若您在Admin数据库下创建用户,需保证已有的任一用户具有创建用户的权限(dbAdminAnyDatabase、userAdmin或userAdminAnyDatabase等权限)。

    • PostgreSQL:RDS PostgreSQLAnalyticDB for PostgreSQL

  • 系统角色为管理员、DBA或普通用户(实例Owner)。更多信息,请参见系统角色

  • 已获取目标数据库的数据库账号数据库密码

  • 如果您需要在DMS控制台创建账号,需确保登录DMS的数据库账号具有创建用户的权限。

账号权限管控示例

  • 给A账号授予全局SELECTUPDATE权限。

    说明

    全局权限作用于整个数据库实例级别,更多全局权限类型信息,请参见权限说明

  • 给B账号授予单张表的SELECT权限或某一列的UPDATE权限。

    说明

    对象权限作用范围可以是所有数据库对象,也可以指定单个或多个数据库对象,关于更多的对象权限类型介绍请参见权限说明

管理数据库账号

创建数据库账号

说明

通过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

请按以下方式排查:

  1. 在 RDS 控制台创建高权限账号,使用该账号登录 DMS 后重新操作。

  2. 或直接在 RDS 控制台的账号管理页面创建数据库用户。

  3. 如果 DMS 实例开启了安全托管模式,可能无法在 DMS 中切换数据库账号。此时需要在 RDS 控制台创建账号,或调整实例的安全托管设置后再操作。

创建MySQL数据库账号

  1. 登录数据管理DMS 5.0

  2. 登录目标数据库,详情请参见登录数据库

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

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

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

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

      配置项

      说明

      数据库账号

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

      主机

      表示允许账号从某个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. 单击全局权限页签,勾选目标权限。全局权限的说明,请参见MySQL全局权限

      全局对象界面

      说明

      若您使用普通账号在权限类型中未找到目标权限,可能由于账号权限或实例类型不支持该权限。若由于账号权限不足原因,可使用高权限账号重试。

    3. 单击对象权限页签,配置参数。对象权限的说明,请参见MySQL对象权限

      例如按照下图进行配置的SQL示例为:

      GRANT SELECT,INSERT ON `rds_db`.* TO '用户名'@'主机'; 
       GRANT DELETE ON `rds_db`.`rds_table` TO '用户名'@'主机';

      对象权限界面

  6. 单击确认

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

    说明

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

创建MongoDB数据库账号

  1. 登录数据管理DMS 5.0

  2. 登录目标数据库,详情请参见登录数据库

    重要

    对于MongoDB副本集实例,需要登录Primary(主)节点。

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

  4. 单击页面左上角的创建数据库账号,配置以下信息。

    1. 设置用户信息。

      image

      配置项目

      说明

      目标库

      下拉选择该用户所属的目标数据库。

      说明
      • 目标库选择为非admin库时,创建的用户为普通用户。

      • 目标库选择为admin库时,创建的用户为高权限用户。

      用户名

      设置用户的名称。

      • 不支持中文。

      • 支持英文、数字和特殊字符。

      • 特殊字符包括:!#$%^&*()_+-=

      密码

      设置用户的密码。

      为保障数据安全性,建议设置的密码至少由如下三种字符组成,且长度为8-32位:

      • 大写字母

      • 小写字母

      • 数字

      • 特殊字符(!#$%^&*()_+-=

      确认密码

      再次输入密码。

    2. 设置用户的权限信息。

      说明
      • 当目标库选择为admin库时:

        当前库权限页签,可以设置普通操作角色管理员操作角色实例级别操作角色集群管理员角色备份与恢复操作角色超级角色等权限,角色权限详情请参见MongoDB角色权限

        也可以选择其他库权限页签,并添加数据库名及设置对应数据库的角色权限。

      • 当目标库选择为非admin库时:

        当前库权限页签,只能设置当前库普通操作角色管理员操作角色,角色权限详情请参见MongoDB角色权限

        其他库权限页签的设置权限。

  5. 单击确认

    说明

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

创建PostgreSQL数据库账号

  1. 登录数据管理DMS 5.0

  2. 登录目标数据库,详情请参见登录数据库

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

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

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

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

      配置项

      说明

      用户名

      输入账号用户名。

      密码

      输入登录密码。

      确认密码

      再次输入登录密码。

      密码过期时间

      选择密码的过期时间,例如选择2021年12月30号0点过期,该密码会在该时间点失效。

      该参数非必选,默认为不失效。

      连接数限制

      输入该账号的连接并发数,例如您配置了10,表示该账号最多允许在10个客户端上同时连接数据库。

      默认为-1,表示不限制。

      备注

      填写该账号的备注信息。

    2. 单击权限页签,勾选目标权限。

      权限类型

      说明

      允许登录

      登录权限,对应的SQL命令为LOGINNOLOGIN,默认为允许登录。

      允许创建用户

      创建数据库账号的权限,对应的SQL命令为CREATEROLENOCREATEROLE,默认为允许创建用户。

      允许创建DB

      创建数据库的权限,对应的SQL命令为CREATEDBNOCREATEDB,默认为允许创建数据库。

  6. 单击确认

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

    说明

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

编辑或删除账号

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

  1. 登录数据管理DMS 5.0

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

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

编辑或删除账号

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

  1. 登录数据管理DMS 5.0

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

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

切换数据库账号

  1. 登录数据管理DMS 5.0

  2. 在左侧的数据库实例区域,找到目标实例。

  3. 右键单击实例名称,选择编辑实例

  4. 基本信息区域填写需要登录的数据库账号以及对应的账号密码。

  5. 单击保存

增加或删除数据库账号权限

  1. 登录数据管理DMS 5.0

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

  3. 找到目标账号,单击右侧的编辑

  4. 在权限区域,增加(勾选目标权限)或删除(取消勾选目标权限)账号权限,单击确认

权限说明

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

触发器

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

MongoDB角色权限

角色权限的详情说明请参见MongoDB官网介绍

角色类型

权限

权限说明

普通操作角色

read

查询本库的权限。

readWrite

增删改查本库的权限。

管理员操作角色

dbAdmin

数据库对象的管理操作,但没有数据库的读写权限。

userAdmin

在本库下创建用户的权限。

dbOwner

本库所有操作的权限。

实例级别操作角色

readAnyDatabase

查询本实例所有库的权限。

readWriteAnyDatabase

增删改查本实例所有库的权限。

userAdminAnyDatabase

在本实例所有库下创建用户的权限。

dbAdminAnyDatabase

本实例所有库的dbAdmin权限。

集群管理员角色

hostManager

数据库对象的管理操作,但没有数据库的读写权限。

clusterMonitor

查询集群和复制集的权限。

clusterManager

管理和监控集群和复制集的权限。

clusterAdmin

集群所有操作的权限。

备份与恢复操作角色

backup

查询本实例所有库的权限。

restore

增删改查本实例所有库的权限。

超级角色

Root

超级用户权限。

相关文档

RDS PostgreSQL权限管理最佳实践

常见问题

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

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

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

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

  2. 调整安全规则。

    1. 登录数据管理DMS 5.0

    2. 在顶部菜单栏中,选择安全与容灾(DBS) > 安全规则

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

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

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

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

    7. 在编辑规则对话框的规则DSL区域,将规则修改为:if @fac.sql_type in ["DCL"] then @act.allow_execute_direct end

      该写法按 DCL 大类匹配,覆盖CREATE USERGRANT等所有 DCL 语句,无需逐一列举 SQL 类型。其中,allow_execute_direct表示允许在 SQL 控制台直接执行allow_submit表示仅允许提交工单审批后执行,两者放行力度不同,请按实际需求选择。

  3. 单击提交

  4. 检查风险识别规则。在SQL变更 > 风险识别规则中,确认是否存在将 DCL 标记为高风险的规则。若存在,需禁用或调整该规则,否则会覆盖上一步设置的 DCL 放行规则,导致规则修改后仍不生效。

说明

安全协同模式的实例支持编辑安全规则;自由操作稳定变更模式使用系统内置规则,不支持编辑。若目标实例不是安全协同模式,需购买安全协同许可证并切换管控模式后才能按上述步骤修改规则。此外,请确认所修改的规则集已关联目标实例,否则修改不会生效。