Quelles sont les autorisations requises pour AWS DMS lorsque j'utilise Oracle comme point de terminaison source ?

Lecture de 6 minute(s)
0

J'ai une tâche AWS Database Migration Service (AWS DMS) qui utilise Oracle comme point de terminaison source. Je souhaite connaître les autorisations minimales requises pour AWS DMS.

Brève description

AWS DMS doit être autorisé à lire les données de la base de données source afin de les migrer vers la cible. En fonction de vos paramètres de tâche AWS DMS et du type de migration que vous effectuez, les autorisations requises peuvent varier.

Résolution

Bases de données source Oracle gérées par AWS

Pour les bases de données Oracle gérées par Amazon, reportez-vous à Utilisation d'une base de données Oracle gérée par AWS comme source pour AWS DMS. Les bases de données Oracle comme Amazon Relational Database Service (Amazon RDS) sont incluses.

Bases de données sources Oracle autogérées

Les autorisations suivantes sont requises pour les bases de données Oracle autogéré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>;

Les autorisations suivantes sont requises pour pouvoir afficher les vues :

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

Remarque : pour révéler les vues, vous devez également ajouter ces attributs de connexion supplémentaires au point de terminaison source :

exposeViews=true

Vous pouvez utiliser un modèle qui correspond aux noms des tables dans votre tâche de réplication. Vous pouvez également autoriser l'utilisateur de la base de données source à lire des tables à partir d'un schéma différent. Pour effectuer l'une ou l'autre de ces tâches, ajoutez les autorisations suivantes :

GRANT SELECT ANY TABLE to <dms\_user>;

Les autorisations suivantes sont requises pour spécifier une liste de tables dans votre tâche de réplication :

GRANT SELECT on <schema>.<table > ;

Remarque : vous devez ajouter ces autorisations pour chaque table répertoriée dans la liste des tables. Pour effectuer une migration depuis Oracle RAC, vous devez accorder des autorisations de SÉLECTION pour les vues matérialisées comportant les préfixes gv_$ et v_$.

Les autorisations suivantes sont requises pour activer la validation AWS DMS pour les objets volumineux (LOB) :

GRANT execute on sys.dbms_crypto to <dms_user>;

Les autorisations suivantes sont requises si vous utilisez l'attribut de connexion supplémentaire addSupplementalLogging :

GRANT ALTER ANY TABLE to <dms\_user>

Bases de données source Oracle avec des tâches de réplication continues

Oracle propose deux méthodes pour lire les journaux de rétablissement pendant la réplication continue : Oracle LogMiner et Oracle Binary Reader. En fonction de la méthode utilisée, vous devez accorder des autorisations supplémentaires à l'utilisateur source après avoir accordé les autorisations requises mentionnées précédemment.

Les autorisations suivantes sont requises pour utiliser LogMiner :

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

Les autorisations suivantes sont requises pour Oracle 12c et versions ultérieures :

GRANT LOGMINING TO <dms\_user>;

Binary Reader utilise les répertoires Oracle pour lire les journaux de rétablissement et d'archivage. Vous devez donc autoriser AWS DMS à créer les répertoires Oracle dans la base de données source :

GRANT CREATE ANY DIRECTORY to <dms\_user>;

Pour pouvoir utiliser AWS DMS afin de créer les répertoires Oracle, vous devez accorder le privilège CRÉER N'IMPORTE QUEL RÉPERTOIRE. AWS DMS crée des noms de répertoire avec le préfixe DMS_. Si le privilège CRÉER N'IMPORTE QUEL RÉPERTOIRE n'est pas accordé, vous devrez créer les répertoires manuellement. Lorsque vous créez manuellement les répertoires Oracle, l'utilisateur Oracle que vous spécifiez sur le point de terminaison n'est pas toujours celui qui a créé les répertoires. Dans ces cas, vous devez accorder le privilège de LECTURE sur le RÉPERTOIRE.

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

Pour vérifier que les répertoires ont bien été créés, interrogez la table ALL_DIRECTORIES. Pour utiliser Binary Reader afin d'accéder aux journaux de rétablissement dans Automatic Storage Management (ASM), accordez les autorisations suivantes à l'utilisateur Oracle sur le point de terminaison :

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.

Remarque : AWS DMS prend en charge Oracle Active Data Guard Standby en tant que source. En mode Active Data Guard, vous pouvez ouvrir des bases de données Standby en mode lecture seule. Après avoir accordé les autorisations mentionnées précédemment sur l'instance principale, vous devez effectuer plusieurs changements de journal pour répliquer les autorisations sur la base de données de secours. Pour en savoir plus, reportez-vous Forcer les changements de journal sur le site Web d'Oracle.

Informations connexes

Utilisation d'une base de données Oracle comme source pour AWS DMS

Utilisation d'un Oracle Standby autogéré comme source avec Binary Reader for CDC dans AWS DMS

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 6 mois