Quais são as permissões necessárias para o AWS DMS ao usar o Oracle como endpoint de origem?

6 minuto de leitura
0

Eu tenho uma tarefa do AWS Database Migration Service (AWS DMS) que usa o Oracle como endpoint de origem. Quero saber quais são as permissões mínimas exigidas para o AWS DMS.

Breve descrição

O AWS DMS exige permissões para ler dados do banco de dados de origem de modo que possa migrá-los para o destino. As permissões necessárias variam de acordo com as configurações de tarefas do AWS DMS e o tipo de migração que você está realizando.

Resolução

Bancos de dados de origem Oracle que a AWS gerencia

Para bancos de dados Oracle gerenciados pela Amazon, consulte Trabalhando com um banco AWS de dados Oracle gerenciado como fonte para AWS DMS. Isso inclui bancos de dados Oracle, como o Amazon Relational Database Service (Amazon RDS).

Bancos de dados de origem Oracle autogerenciados

Para bancos de dados Oracle autogerenciados, são necessárias as seguintes permissões:

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 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_LOG_GROUPS 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 ALL_TAB_PARTITIONS to <dms_user>;
GRANT SELECT on ALL_ENCRYPTED_COLUMNS to <dms_user>;
GRANT SELECT ANY TRANSACTION 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_$LOG to <dms_user>;
GRANT SELECT on V_$ARCHIVED_LOG to <dms_user>;
GRANT SELECT on V_$LOGFILE to <dms_user>;
GRANT SELECT on V_$TRANSACTION to <dms_user>;

Para mostrar visualizações, as seguintes permissões são necessárias:

GRANT SELECT on ALL\_VIEWS to <dms\_user>;

Observação: para expor visualizações, você também deve adicionar esses atributos de conexão extra ao endpoint de origem:

exposeViews=true

Você pode usar um padrão que corresponda aos nomes das tabelas em sua tarefa de replicação. Você também pode permitir que o usuário do banco de dados de origem leia tabelas de um esquema diferente. Para realizar qualquer uma das tarefas, adicione as seguintes permissões:

GRANT SELECT ANY TABLE to <dms\_user>;

Para especificar uma lista de tabelas em sua tarefa de replicação, as seguintes permissões são necessárias:

GRANT SELECT on <schema>.<table > ;

Observação: adicione essas permissões para todas as tabelas na lista de tabelas. Para migrar do Oracle RAC, você deve conceder permissões SELECT em visões materializadas que têm os prefixos gv_$ e v_$.

Para ativar a validação do AWS DMS para objetos grandes (LOBs), as seguintes permissões são necessárias:

GRANT execute on sys.dbms_crypto to <dms_user>;

Se você usa o atributo de conexão extra addSupplementalLogging, as seguintes permissões são necessárias:

GRANT ALTER ANY TABLE to <dms\_user>

Bancos de dados de origem Oracle com tarefas contínuas de replicação

A Oracle oferece dois métodos para ler os redo logs durante a replicação contínua: Oracle LogMiner e Oracle Binary Reader. Dependendo do método usado, você deve conceder ao usuário de origem permissões adicionais depois de conceder as permissões necessárias mencionadas anteriormente.

Para usar o LogMiner, as seguintes permissões são necessárias:

GRANT EXECUTE ON dbms\_logmnr TO <dms\_user>;

Para o Oracle 12c e versões posteriores, as seguintes permissões são necessárias:

GRANT LOGMINING TO <dms\_user>;

O Binary Reader usa diretórios Oracle para ler, refazer e arquivar registros. Você deve conceder acesso ao AWS DMS para criar os diretórios Oracle no banco de dados de origem:

GRANT CREATE ANY DIRECTORY to <dms\_user>;

Para usar o AWS DMS para criar os diretórios Oracle, você deve conceder o privilégio CREATE ANY DIRECTORY. O AWS DMS cria os nomes dos diretórios com o prefixo DMS_. Se você não conceder o privilégio CREATE ANY DIRECTORY, deverá criar manualmente os diretórios. Quando você cria manualmente os diretórios Oracle, o usuário Oracle que você especifica no endpoint nem sempre é o usuário que criou os diretórios. Nesses casos, você deve conceder o privilégio READ on DIRECTORY.

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

Para confirmar se os diretórios foram criados, consulte a tabela ALL_DIRECTORIES. Para usar o Binary Reader para acessar os redo logs no Automatic Storage Management (ASM), conceda essas permissões ao usuário Oracle no endpoint:

GRANT SELECT ON v_$transportable_platform  to <dms_user>; - Grant this privilege if the redo logs are stored in Oracle Automatic Storage Management (ASM) and AWS DMS accesses them from ASM.
GRANT SYSASM to <ASM_USER>; - To access the ASM account with Oracle 11g Release 2 (version 11.2.0.2) and higher, grant the Oracle endpoint user the SYSASM privilege. For older supported Oracle versions, it's typically sufficient to grant the Oracle endpoint user the SYSDBA privilege.

Where the Oracle source uses ASM, you can work with high-performance options in Binary Reader for transaction processing at scale. These options include extra connection attributes to specify the number of parallel threads (parallelASMReadThreads) and the number of read-ahead buffers (readAheadBlocks). Setting these attributes together can significantly improve the performance of the CDC task. The following settings provide good results for most ASM configurations.

Observação: o AWS DMS aceita o Oracle Active Data Guard Standby como fonte. No modo Active Data Guard, você pode abrir bancos de dados em espera no modo somente leitura. Depois de conceder as permissões mencionadas anteriormente na instância primária, execute várias alternâncias de log para replicar as permissões no banco de dados em espera. Para obter mais informações, consulte Forcing log switches no site da Oracle.

Informações relacionadas

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 OFICIAL
AWS OFICIALAtualizada há 5 meses