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.
Résolution
Les autorisations requises varient selon les types de paramètres de tâche DMS et les différents types de migration.
Bases de données source Oracle gérées par AWS
Pour plus d'informations sur les autorisations pour les bases de données Oracle gérées par AWS, consultez la section Privilèges de compte utilisateur requis sur une source Oracle autogérée pour AWS DMS.
Bases de données sources Oracle autogérées
Pour les bases de données Oracle autogérées, vous devez accorder les autorisations suivantes à l'utilisateur 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;
Remarque :
- N'accordez SELECT ON DBA_OBJECTS que lorsque la version Oracle est antérieure à la version 11.2.0.3.
- Si vous avez activé le chiffrement transparent des données (TDE), accordez SELECT ON SYS.ENC$.
- Accordez SELECT ON GV_$TRANSACTION uniquement lorsque la base de données source est Oracle RAC dans AWS DMS version 3.4.6 ou supérieure./li>
- N'accordez SELECT ON V_$DTATGUARD_STATS que si vous utilisez une base de données de secours Oracle Active Data Guard comme base de données source dans la dernière version de DMS version 3.4.6, 3.4.7 ou supérieure.
Remarque : DMS prend en charge les bases de données de secours Oracle Data Guard en tant que source. Lorsque vous activez Data Guard, vous pouvez ouvrir des bases de données de secours en mode lecture seule. Après avoir accordé les autorisations, effectuez plusieurs changements de journal pour répliquer les autorisations dans la base de données de secours. Pour en savoir plus, consultez la page Forcer les changements de journal sur le site Web d'Oracle.
Pour afficher les vues, accordez l'autorisation suivante :
GRANT SELECT on ALL\_VIEWS to dms_user;
Pour exposer des vues, vous devez également ajouter l'attribut de connexion exposeViews=true au point de terminaison source.
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 l'une ou l'autre des tâches, ajoutez l'autorisation suivante :
GRANT SELECT ANY TABLE to dms_user;
Pour spécifier une liste de tables dans votre tâche de réplication, accordez l'autorisation suivante :
GRANT SELECT on schema.table;
Pour migrer depuis Oracle Real Application Clusters (RACS), vous devez accorder l'autorisation SELECT sur les vues matérialisées avec les préfixes gv_$ et v_$.
Pour activer la validation DMS pour les objets binaires volumineux (LOB), accordez l'autorisation suivante :
GRANT execute on sys.dbms_crypto to dms_user;
Si vous utilisez l'attribut de connexion addSupplementalLogging, accordez l'autorisation suivante :
GRANT ALTER ANY TABLE to dms_user
Bases de données source Oracle avec des tâches de réplication continues
Pour lire les journaux de rétablissement pendant la réplication, Oracle propose Oracle LogMiner et Oracle Binary Reader.
Pour utiliser LogMiner, accordez l'autorisation suivante :
GRANT EXECUTE ON dbms_logmnr TO dms_user;
Pour Oracle Database 12c et versions ultérieures, accordez l'autorisation suivante :
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 DMS à créer les répertoires Oracle dans la base de données source :
GRANT CREATE ANY DIRECTORY to dms_user;
Pour pouvoir utiliser DMS afin de créer les répertoires Oracle, vous devez accorder l’autorisation CRÉER N'IMPORTE QUEL RÉPERTOIRE. DMS crée des noms de répertoires avec le préfixe DMS_. Si l’autorisation 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 ce cas, vous devez accorder les autorisations LECTURE SUR LE RÉPERTOIRE suivantes :
GRANT READ ON DIRECTORY RedoLog_directory_name to dms_user;
GRANT READ ON DIRECTORY ArchiveLog_directory_name to dms_user;
Pour vérifier que vous avez créé les répertoires, interrogez la table ALL_DIRECTORIES.
Pour utiliser Binary Reader afin d'accéder aux journaux de rétablissement dans Automatic Storage Management (ASM), accordez l’une des autorisations suivantes à l'utilisateur du point de terminaison Oracle.
Si vous stockez les journaux de rétablissement dans ASM et qu'AWS DMS accède aux journaux depuis ASM, accordez l'autorisation suivante :
GRANT SELECT ON v_$transportable_platform to dms_user;
Pour accéder au compte ASM avec Oracle 11g édition 2 version 11.2.0.2 ou supérieure, accordez l'autorisation SYSASM :
GRANT SYSASM to ASM_USER;
Remarque : Pour les versions antérieures d'Oracle prises en charge, vous pouvez accorder l'autorisation SYSDBA.
Lorsque la source Oracle utilise ASM, vous pouvez utiliser les options hautes performances de Binary Reader pour traiter les transactions à grande échelle. Les options incluent des attributs de connexion supplémentaires pour spécifier le nombre de threads parallèles (ParallelasmReadThreads) et le nombre de buffers de lecture anticipée (readAheadBlocks). Définissez les attributs ensemble pour améliorer les performances de la tâche CDC.
Pour utiliser l'utilisateur ASM, modifiez votre point de terminaison source Oracle pour inclure l'utilisateur DMS et l'utilisateur ASM, et séparez-les par des virgules.
Exemple de format de point de terminaison source :
Nom d'utilisateur : oracle_user,asm_user
Mot de passe : oracle_user_password,asm_user_password
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