Quelles sont les autorisations requises pour AWS DMS lors de l'utilisation d'Oracle comme point de terminaison source ?

Date de la dernière mise à jour : 12/12/2019

J'ai une tâche AWS Database Migration Service (AWS DMS) qui utilise Oracle comme point de terminaison source. Quelles sont les autorisations minimales requises pour AWS DMS ?

Brève description

AWS DMS a besoin d’autorisations pour lire les données de la base de données source afin de pouvoir migrer les données vers la cible. En fonction des paramètres de votre tâche AWS DMS et du type de migration que vous effectuez, les autorisations requises varient. Consultez les autorisations minimales requises suivantes pour les bases de données suivantes :

  • Bases de données sources Oracle hébergées sur Amazon Web Services (AWS)
  • Bases de données sources Oracle autogérées
  • Bases de données sources Oracle ayant des tâches de réplication en cours

Résolution

Bases de données sources Oracle hébergées sur AWS

Pour les bases de données Oracle gérées par Amazon, par exemple une instance de base de données Amazon Relational Database Service (Amazon RDS) qui exécute Oracle, consultez Utilisation d'une base de données Oracle gérée par Amazon comme source pour AWS DMS.

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

Pour les bases de données Oracle autogérées, les autorisations suivantes sont requises :

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>;

Pour exposer des vues, les autorisations suivantes sont requises :

GRANT SELECT on ALL_VIEWS to <dms_user>;

Remarque : pour exposer des vues, vous devez également ajouter l'attribut de connexion supplémentaire suivant au point de terminaison source : exposeViews=true.

Pour utiliser un modèle qui correspond aux noms de table de votre tâche de réplication ou pour autoriser l'utilisateur de la base de données source à lire les tables d'un autre schéma, les autorisations suivantes sont requises :

GRANT SELECT ANY TABLE to <dms_user>;

Pour spécifier une liste de tables dans votre tâche de réplication, les autorisations suivantes sont requises :

GRANT SELECT on <schema>.<table > ;

Remarque : ajoutez ces autorisations pour toutes les tables de la liste des tables. Une migration depuis Oracle RAC nécessite de devoir accorder des autorisations SELECT sur les vues matérialisées ayant comme préfixe gv_$ and v_$.

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

GRANT execute on sys.dbms_crypto to <dms_user>;

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

GRANT ALTER ANY TABLE to <dms_user>

Bases de données sources Oracle ayant des tâches de réplication en cours

Oracle propose deux méthodes de lecture des journaux redo pendant la réplication continue : Oracle LogMiner et Oracle Binary Reader. Selon que vous utilisez LogMiner ou Binary Reader, vous devez accorder à l'utilisateur source des autorisations supplémentaires après avoir accordé les autorisations requises précédemment mentionnées.

Pour utiliser LogMiner, les autorisations suivantes sont requises :

GRANT EXECUTE ON dbms_logmnr TO <dms_user>;

Pour Oracle 12c uniquement, les autorisations suivantes sont requises :

GRANT LOGMINING TO <dms_user>;

Pour utiliser Binary Reader, les autorisations suivantes sont requises :

GRANT SELECT ON v_$transportable_platform  to <dms_user>;

Comme Binary Reader lit les journaux redo et archive à l'aide des répertoires Oracle, vous devez accorder l'accès AWS DMS pour créer les répertoires Oracle dans la base de données source :

GRANT CREATE ANY DIRECTORY to <dms_user>;

Ou, si vous ne voulez pas autoriser AWS DMS à créer des répertoires Oracle dans votre base de données Oracle source, vous pouvez créer les répertoires Oracle au préalable à l’emplacement des journaux redo et archive. Accordez ensuite l'accès READ à l'utilisateur AWS DMS sur ces répertoires :

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

Vérifiez aussi que les répertoires sont créés en interrogeant la table ALL_DIRECTORIES .

Si la base de données source utilise Oracle ASM, les autorisations suivantes sont requises :

GRANT SYSASM  to <ASM_user>; 

Remarque : ces autorisations sont requises, car la lecture des journaux redo et archive à partir d'Oracle ASM utilise une fonction du package Oracle DBMS_DISKGROUP qui nécessite des privilèges SYSASM ou SYSDBA .

Si vous utilisez l'attribut de connexion supplémentaire copyToTempFolder, vous devez alors créer un répertoire et accorder les autorisations suivantes :

Create directory <bfile_dir> as <copyToTempFolder_PATH>;
GRANT READ, WRITE ON DIRECTORY <bfile_dir> TO <dms_user>;

Pour AWS DMS version 3.1 ou ultérieure, il est recommandé d'ajouter l'attribut de connexion supplémentaire parallelASMReadThreads. Pour plus d'informations, consultez la rubrique Utilisation d'Oracle LogMiner ou d'Oracle Binary Reader pour la capture des données modifiées (CDC).

Remarque : AWS DMS prend en charge Oracle Active Data Guard Standby en tant que source. En mode Active Data Guard, les bases de données de secours peuvent être ouvertes en mode lecture seule. Vous devez donc accorder les autorisations mentionnées précédemment sur l'instance principale. Une fois les autorisations accordées sur l'instance principale, effectuez quelques opérations de basculement dans les journaux afin de répliquer les autorisations dans la base de données de secours. Pour plus d'informations, consultez la documentation d'Oracle relative au Forçage des opérations de basculement dans le journaux.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?