达梦DMDRS数据库同步用户最小权限

DMDRS服务运行过程中,使用的数据库同步用户需要一定的权限访问数据库数据,如果不能赋予DMDRS同步用户DBA权限,为确保同步的正确性,数据库管理员可根据应用场景配置数据库同步用户的最小权限。

1、源数据库同步用户最小权限

赋予DM8源数据库同步用户最小权限的脚本示例请参见DMDRS数据库同步用户最小权限脚本示例,具体的权限说明如下表所示。

权限类别 权限说明 权限
基础权限 DM8数据库用户默认具有PUBLIC角色权限。 需要赋予如下权限: PUBLIC
基础权限 源DMDRS在启动、数据装载及同步过程中需要使用数据库数据字典表来查询如附加日志信息、日志信息、数据库实例名和表定义等相关信息。 需要赋予如下权限: SOI、VTI
基础权限 源DMDRS在启动时需要同步用户有创建会话的权限。 需要赋予如下权限: CREATE SESSION
装载相关权限 装载时,数据库用户需要具有装载表的查询权限。 如果待装载的表或序列在当前用户下,不需要额外赋予任何查询权限。 如果待装载的表或序列在其他用户下,则需要赋予待装载表的查询权限。 需要赋予如下权限: SELECT ON <待装载表/序列的模式名>.<待装载表/序列的表名>
同步相关权限 DM8触发器同步时,如果数据库用户不是SYSDBA用户,需要对SYSDBA.DRS_$DDL_LOG具有查询权限。 需要赋予如下权限: SELECT ON SYSDBA.DRS_$DDL_LOG
DSC同步相关权限 数据库为DSC时,数据库用户需要具有建表、INSERT和UPDATE权限,以及建包和调用的权限。 需要赋予如下权限: CREATE TABLE|PACKAGE

说明

  • 对于旧版本DM8无SOI、VTI权限的情况,使用同等权限的对象查询权限即可。
    SYS.VRLOG SYS.VDM_INI
    SYS.VRLOGFILE SYS.VDM_ARCH_INI
    SYS.VVERSION SYS.VARCH_FILE
    SYS.VIFUN SYS.VDYNAMIC_TABLES
    SYS.VDYNAMIC_TABLE_COLUMNS DSC还需包含以下对象查询权限: SYS.VDCR_GROUP
    SYS.VDCR_EP SYS.VDM_MAL_INI
  • 对于旧版本DM8无CREATE SESSION权限的情况,删除该权限即可。

2、目标数据库同步用户最小权限

2.1、DM8目标数据库同步用户最小权限

赋予DM8目标数据库同步用户最小权限的脚本示例请参见DMDRS数据库同步用户最小权限脚本示例,具体的权限说明如下表所示。

权限类别 权限说明 权限
基础权限 目标DMDRS在执行DML时需要数据操作权限。 需要赋予如下权限: PUBLIC
基础权限 目标DMDRS在启动时需要在目标数据库中创建辅助表和辅助存储过程。 需要赋予如下权限: RESOURCE
基础权限 目标DMDRS在启动时需要查询数据库的相关参数信息、系统表字典信息。 需要赋予如下权限: SOI、VTI
基础权限 目标DMDRS在启动时需要同步用户有创建会话的权限。 需要赋予如下权限: CREATE SESSION
装载与同步相关权限 若需要同步在非同步用户模式下已存在的表/序列的数据,需要赋予在待同步表/序列上的DML权限或查询权限。 需要赋予如下权限: INSERT|UPDATE|DELETE ON <目标表的模式名>.<目标表名> SELECT ON <目标序列的模式名>.<目标序列名>
装载与同步相关权限 若需要同步在非同步用户模式下未存在的表/序列的数据,可以先在装载时使用CREATE掩码同步创建表/序列DDL语句,然后赋予该表/序列的DML权限或查询权限。也可为同步用户赋予在所有表/序列上的DML权限或查询权限。 需要赋予如下权限: INSERT|UPDATE|DELETE|SELECT ANY TABLE SELECT ANY SEQUENCE
装载与同步相关权限 若需要同步在非同步用户模式下表的注释,需要赋予创建表注释的权限。 需要赋予如下权限: COMMENT ANY TABLE
装载与同步相关权限 若需要同步在非同步用户模式下的对象的DDL语句,需要赋予相应的DDL权限。 注:装载表时需要赋予TABLE和INDEX的权限。授予ANY权限前,需先执行语句"ALTER SYSTEM SET 'ENABLE_DDL_ANY_PRIV'=1 BOTH;"开启ANY的授权权限。 需要赋予如下权限: CREATE|ALTER|DROP ANY <对象类型>
装载与同步相关权限 若需要非模式对象(表空间、用户、角色和公共同义词)的DDL操作权限,需要赋予同步用户相应的DDL权限。其中角色和公共同义词不需要ALTER权限。 需要赋予如下权限: CREATE|ALTER|DROP <对象类型>
装载与同步相关权限 若需要同步在非同步用户模式下的非表对象的DDL语句或源DMDRS的DDL_MASK配置SQL掩码情况下同步对象的DDL语句,需要赋予同步用户辅助存储过程的执行权限以及非同步用户下模式所属用户的存储过程的创建权限。 需要赋予如下权限: EXECUTE ON PROCEDURE "DRS_$DDL_SQL_PROC" CREATE PROCEDURE TO <非同步用户下模式所属的用户>

说明

  • 对于旧版本DM8无SOI、VTI权限的情况,使用同等权限的对象查询权限即可。
    SYS.VDM_INI VIFUN
    SYS.VLOCK SYS.VSESSIONS
  • 对于旧版本DM8无CREATE SESSION权限的情况,删除该权限即可。

2.2、Oracle目标数据库同步用户最小权限

赋予Oracle目标数据库同步用户最小权限的脚本示例请参见DMDRS数据库同步用户最小权限脚本示例,具体的权限说明如下表所示。

权限类别 权限说明 权限
基础权限 启动时需要在目标数据库中创建辅助表和辅助存储过程。 需要赋予如下权限: RESOURCE
基础权限 连接数据库时需要创建会话。 需要赋予如下权限: CONNECT
基础权限 启动时需要查询数据库的相关参数信息。 需要赋予如下对象的查询权限: V_INSTANCE、V_PARAMETER、V_SESSION、V_LOCK、DBA_TAB_PARTITIONS
装载相关权限 需要系统表、系统字典及动态视图的查询权限。 需要赋予如下对象的查询权限: SYS.OBJ、SYS.USER、SYS.COL、SYS.COLTYPE、SYS.CCOL、SYS.CDEF、SYS.ATTRCOL$、DBA_IND_COLUMNS、DBA_INDEXES
同步相关权限 需要系统表、系统字典及动态视图的查询权限。 需要赋予如下对象的查询权限: SYS.IND、SYS.SEQ、DBA_TAB_SUBPARTITIONS、DBA_CONSTRAINTS、GV_$INSTANCE(目标DMDRS主备)
装载与同步相关权限 需要非同步用户模式下已存在的待同步表/序列的操作权限。 需要赋予如下权限: INSERT|UPDATE|DELETE ON <目标表的模式名>.<目标表名> SELECT ON <目标序列的模式名>.<目标序列名>
装载与同步相关权限 需要非同步用户模式下未存在的表/序列的数据的操作权限。也可以在目标同步表创建后,同上行所述单独为每张表赋予操作权限。 需要赋予如下权限: INSERT|UPDATE|DELETE|SELECT ANY TABLE SELECT ANY SEQUENCE
装载与同步相关权限 需要非同步用户模式下对象的DDL权限。 需要赋予如下权限: CREATE|ALTER|DROP ANY <对象类型>

2.3、MySQL目标数据库同步用户最小权限

赋予MySQL目标数据库同步用户最小权限的脚本示例请参见DMDRS数据库同步用户最小权限脚本示例,具体的权限说明如下表所示。

权限类别 权限说明 权限
基础权限 启动时需要在dbname参数指定的目标库下创建辅助表和辅助存储过程。 需要赋予如下权限: CREATE|DROP|CREATE ROUTINE|INSERT|UPDATE|DELETE ON <目标库名>.*
基础权限 连接数据库时需要创建会话(用户创建时默认授予)。 需要赋予如下权限: USAGE
装载与同步相关权限 需要目标数据库中已存在的待同步表的操作和查询权限。 需要赋予如下权限: INSERT|UPDATE|DELETE|SELECT ON <目标表的模式名>.<目标表名>
装载与同步相关权限 需要目标数据库中未存在的待同步表的操作和查询权限。也可以在目标同步表创建后,同上行所述单独为每张表赋予操作和查询权限。 需要赋予如下权限: INSERT|UPDATE|DELETE|SELECT ON <目标表的模式名>.*
装载与同步相关权限 需要目标数据库中待同步对象的DDL权限。 需要赋予如下权限: CREATE|ALTER|DROP|INDEX|CREATE ROUTINE|ALTER ROUTINE|REFERENCES ON <目标表的模式名>.*

2.4、SQL Server目标数据库同步用户最小权限

赋予SQL server目标数据库同步用户最小权限的脚本示例请参见DMDRS数据库同步用户最小权限脚本示例,具体的权限说明如下表所示。

权限类别 权限说明 权限
基础权限 目标DMDRS在执行DML时需要数据操作权限。 需要赋予如下权限: PUBLIC
基础权限 目标DMDRS在启动时需要在目标数据库中创建辅助表和辅助存储过程。 需要赋予如下权限: * EXEC sp_addrolemember 'db_ddladmin' * ALTER ON SCHEMA::<目标模式>
基础权限 目标DMDRS在启动时需要同步用户有创建会话的权限。 需要赋予如下权限: CONNECT
装载与同步相关权限 若需要同步在非同步用户模式下已存在的表/序列的数据,需要赋予在待同步表/序列上的DML权限或查询权限。 需要赋予如下权限: * INSERT|UPDATE|DELETE ON <目标表的模式名>.<目标表名> * SELECT ON <目标序列的模式名>.<目标序列名>
装载与同步相关权限 若需要同步在非同步用户模式下未存在的表/序列的数据,可以先在装载时使用CREATE掩码同步创建表/序列DDL语句,然后赋予该表/序列的DML权限或查询权限。也可为同步用户赋予在所有表/序列上的DML权限或查询权限。 需要赋予如下权限: INSERT|UPDATE|DELETE|SELECT ON SCHEMA::<目标模式名>
装载与同步相关权限 若需要同步在非同步用户模式下的对象的DDL语句,需要赋予相应的DDL权限。 需要赋予如下权限: * EXEC sp_addrolemember 'db_ddladmin' * ALTER ON SCHEMA::<目标模式>

2.5、PostgreSQL目标数据库同步用户最小权限

赋予PostgreSQL目标数据库同步用户最小权限的脚本示例请参见DMDRS数据库同步用户最小权限脚本示例,具体的权限说明如下表所示。

权限类别 权限说明 权限
基础权限 启动时需要在dbname参数指定的目标库下创建辅助表和辅助存储过程。 需要赋予如下权限: CREATE ON DATABASE <目标库名>
基础权限 连接数据库时需要创建会话(用户创建时默认授予)。 需要赋予如下权限: CONNECT ON DATABASE <目标库名>
装载与同步相关权限 需要public模式下辅助表的操作权限。 需要赋予如下权限: USAGE ON SCHEMA public INSERT|UPDATE|DELETE|SELECT ON ALL TABLES IN SCHEMA public
装载与同步相关权限 需要目标数据库中已存在的待同步表上的操作和查询权限。 需要赋予如下权限: USAGE ON SCHEMA <目标表的模式名> INSERT|UPDATE|DELETE|SELECT ON <目标表的模式名>.<目标表名>
装载与同步相关权限 需要目标数据库中未存在的待同步表上的操作和查询权限。也可以在目标同步表创建后,同上行所述单独为每张表赋予操作和查询权限。 需要赋予如下权限: USAGE ON SCHEMA <目标表的模式名> INSERT|UPDATE|DELETE|SELECT ON ALL TABLES IN SCHEMA <目标表的模式名>
装载与同步相关权限 需要非同步用户模式下未存在的表/序列的数据的操作权限。也可以在目标同步表创建后,同上行所述单独为每张表赋予操作权限。 需要赋予如下权限: USAGE ON SCHEMA <目标表的模式名> INSERT|UPDATE|DELETE|SELECT ON ALL TABLES IN SCHEMA <目标表的模式名>
装载与同步相关权限 需要目标数据库中待同步对象的DDL权限。 需要赋予如下权限: CREATE ON SCHEMA <目标模式名>
相关推荐
松涛和鸣1 分钟前
48、MQTT 3.1.1
linux·前端·网络·数据库·tcp/ip·html
晓时谷雨3 分钟前
达梦数据库适配方案及总结
数据库·达梦·数据迁移
LaLaLa_OvO6 分钟前
spring boot2.0 里的 javax.validation.Constraint 加入 service
java·数据库·spring boot
地球资源数据云17 分钟前
MODIS(MCD19A2)中国2000-2024年度平均气溶胶光学深度数据集
大数据·服务器·数据库·人工智能·均值算法
数据大魔方18 分钟前
【期货量化实战】威廉指标(WR)策略:精准捕捉超买超卖信号(Python源码)
开发语言·数据库·python·算法·github·程序员创富
忘记92620 分钟前
mysql一条sql语句是如何运行的
数据库·mysql
Tan_Ying_Y38 分钟前
为什么InnoDB存储引擎默认使用B+树作为索引结构?B+树索引工作原理?
数据库·b树·oracle
lalala_lulu38 分钟前
MySQL数据库存储引擎的数据结构(超详细版)
数据结构·数据库·mysql
ruleslol40 分钟前
MySQL中的binlog日志
数据库·mysql
:mnong43 分钟前
大语言模型提示词生成交互原型案例分享
大数据·数据库·人工智能