跳至内容

当我使用 Oracle 作为源端点时,AWS DMS 需要什么权限?

3 分钟阅读
0

我有一个 AWS Database Migration Service (AWS DMS) 任务,其使用 Oracle 作为源端点。我想知道 AWS DMS 所需的最低权限是什么。

解决方法

所需的权限因不同类型的 DMS 任务设置和不同的迁移类型而异。

AWS 管理的 Oracle 源数据库

有关 AWS 管理的 Oracle 数据库权限的信息,请参阅适用于 AWS DMS 的自行管理 Oracle 源所需的用户账户权限

自行管理的 Oracle 源数据库

对于自行管理的 Oracle 数据库,必须向 DMS 用户授予以下权限:

GRANT CREATE SESSION TO dms_user;
GRANT SELECT ANY TRANSACTION TO dms_user;
GRANT SELECT ON V_$ARCHIVED_LOG TO dms_user;
GRANT SELECT ON V_$LOG TO dms_user;
GRANT SELECT ON V_$LOGFILE TO dms_user;
GRANT SELECT ON V_$LOGMNR_LOGS TO dms_user;
GRANT SELECT ON V_$LOGMNR_CONTENTS TO dms_user;
GRANT SELECT ON V_$DATABASE TO dms_user;
GRANT SELECT ON V_$THREAD TO dms_user;
GRANT SELECT ON V_$PARAMETER TO dms_user;
GRANT SELECT ON V_$NLS_PARAMETERS TO dms_user;
GRANT SELECT ON V_$TIMEZONE_NAMES TO dms_user;
GRANT SELECT ON V_$TRANSACTION TO dms_user;
GRANT SELECT ON V_$CONTAINERS TO dms_user;                   
GRANT SELECT ON ALL_INDEXES TO dms_user;
GRANT SELECT ON ALL_OBJECTS TO dms_user;
GRANT SELECT ON ALL_TABLES TO dms_user;
GRANT SELECT ON ALL_USERS TO dms_user;
GRANT SELECT ON ALL_CATALOG TO dms_user;
GRANT SELECT ON ALL_CONSTRAINTS TO dms_user;
GRANT SELECT ON ALL_CONS_COLUMNS TO dms_user;
GRANT SELECT ON ALL_TAB_COLS TO dms_user;
GRANT SELECT ON ALL_IND_COLUMNS TO dms_user;
GRANT SELECT ON ALL_ENCRYPTED_COLUMNS TO dms_user;
GRANT SELECT ON ALL_LOG_GROUPS TO dms_user;
GRANT SELECT ON ALL_TAB_PARTITIONS TO dms_user;
GRANT SELECT ON SYS.DBA_REGISTRY TO dms_user;
GRANT SELECT ON SYS.OBJ$ TO dms_user;
GRANT SELECT ON DBA_TABLESPACES TO dms_user;
GRANT SELECT ON DBA_OBJECTS TO dms_user;
GRANT SELECT ON SYS.ENC$ TO dms_user;
GRANT SELECT ON GV_$TRANSACTION TO dms_user;
GRANT SELECT ON V_$DATAGUARD_STATS TO dms_user;
GRANT SELECT ON V_$DATABASE_INCARNATION TO dms_user;

注意:

  • 仅当 Oracle 版本早于 11.2.0.3 时,授予 SELECT ON DBA_OBJECTS
  • 如果您已启用透明数据加密 (TDE),请授予 SELECT ON SYS.ENC$
  • 仅当源数据库是 AWS DMS 版本 3.4.6 或更高版本中的 Oracle RAC 时,授予 SELECT ON GV_$TRANSACTION
  • 仅当在最新版本的 DMS 3.4.6、3.4.7 或更高版本中使用 Oracle Active Data Guard 备用数据库作为源数据库时,授予 SELECT ON V_$DTATGUARD_STATS

**注意:**DMS 支持 Oracle Data Guard 备用数据库作为源。激活 Data Guard 后,可以在只读模式下打开备用数据库。授予权限后,执行多次日志切换以将权限复制到备用数据库。有关详细信息,请参阅 Oracle 网站上的 Forcing log switches(强制日志切换)

要显示视图,请授予以下权限:

GRANT SELECT on ALL\_VIEWS to dms_user;

要公开视图,还必须向源端点添加 exposeViews=true 连接属性。

您可以在复制任务中使用与表名称匹配的模式。您还可以允许源数据库用户从不同的架构中读取表。对于任一任务,请添加以下权限:

GRANT SELECT ANY TABLE to dms_user;

要在复制任务中指定表列表,请授予以下权限:

GRANT SELECT on schema.table;

要从 Oracle Real Application Clusters (RAC) 迁移,必须为具有 gv_$v_$ 前缀的实体化视图授予 SELECT 权限。

要启用大型二进制对象 (LOB) 的 DMS 验证,请授予以下权限:

GRANT execute on sys.dbms_crypto to dms_user;

如果您使用 addSupplementalLogging 连接属性,请授予以下权限:

GRANT ALTER ANY TABLE to dms_user

具有正在进行的复制任务的 Oracle 源数据库

为了在复制期间读取重做日志,Oracle 提供了 Oracle LogMiner 和 Oracle Binary Reader。

要使用 LogMiner,请授予以下权限:

GRANT EXECUTE ON dbms_logmnr TO dms_user;

对于 Oracle Database 12c 及更高版本,请授予以下权限:

GRANT LOGMINING TO dms_user;

Binary Reader 使用 Oracle 目录来读取重做和存档日志。您必须授予 AWS DMS 访问权限,才能在源数据库上创建 Oracle 目录:

GRANT CREATE ANY DIRECTORY to dms_user;

要使用 DMS 创建 Oracle 目录,您必须授予 CREATE ANY DIRECTORY 权限。DMS 会创建带有 DMS_ 前缀的目录名称。如果不授予 CREATE ANY DIRECTORY 权限,则必须手动创建目录。手动创建 Oracle 目录时,在端点上指定的 Oracle 用户并不总是创建目录的用户。在这种情况下,必须授予以下 READ on DIRECTORY 权限:

GRANT READ ON DIRECTORY RedoLog_directory_name to dms_user;
GRANT READ ON DIRECTORY ArchiveLog_directory_name to dms_user;

要确认已创建目录,请查询 ALL_DIRECTORIES 表。

要使用 Binary Reader 访问自动存储管理 (ASM) 中的重做日志,请向 Oracle 端点用户授予以下权限之一。

如果您将重做日志存储在 ASM 中,并且 AWS DMS 访问来自 ASM 的日志,请授予以下权限:

GRANT SELECT ON v_$transportable_platform  to dms_user;

要访问使用 Oracle 11g Release 2 版本 11.2.0.2 或更高版本的 ASM 账户,请授予 SYSASM 权限:

GRANT SYSASM to ASM_USER;

**注意:**对于支持的早期版本的 Oracle,您可以授予 SYSDBA 权限。

当 Oracle 源使用 ASM 时,您可以在 Binary Reader 中使用高性能选项来大规模处理事务。这些选项包括额外的连接属性,用于指定并行线程的数量 (parallelASMReadThreads) 和预读缓冲区的数量 (readAheadBlocks)。将这些属性一起设置以提高 CDC 任务的性能。

要假定 ASM 用户,请修改您的 Oracle 源端点以包括 DMS 用户和 ASM 用户,并使用逗号将它们分开。

源端点格式示例:

用户名:oracle_user,asm_user
密码:oracle_user_password,asm_user_password

相关信息

Using an Oracle database as a source for AWS DMS

Using a self-managed Oracle Standby as a source with Binary Reader for CDC in AWS DMS

AWS 官方已更新 4 个月前