Droits à octroyer pour capturer la source Oracle
- LogMiner doit être activé pour pouvoir lire les journaux des transactions.
Pour cela, vous devez exécuter l'instance Oracle en mode ArchiveLog. Ouvrez une invite de commande et saisissez les commandes suivantes :
sqlplus sys/<password>@orcl as sysdba; SELECT LOG_MODE FROM V$DATABASE; alter database close; alter database archivelog; shut immediate; sqlplus as sysdba; startup; SELECT LOG_MODE FROM V$DATABASE; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (all) COLUMNS;
- Sur l'instance source Oracle, un schéma DD_USRDATA est créé avec un profil utilisateur·trice par défaut. Il contient le référentiel de Talend Change Data Capture pour cette machine. Pour octroyer les droits nécessaire au référentiel DD_USRDATA, ouvrez une invite de commande et saisissez les commandes suivantes :
sqplus sys/<password>@orcl as sysdba; GRANT ALTER SESSION TO "DD_USRDATA"; GRANT EXECUTE ON DBMS_LOGMNR TO "DD_USRDATA"; GRANT EXECUTE ON DBMS_LOGMNR_D TO "DD_USRDATA"; GRANT EXECUTE ON SYS.DBMS_LOGMNR_D TO "DD_USRDATA"; GRANT EXECUTE ON SYS.DBMS_LOGMNR_INTERNAL TO "DD_USRDATA"; GRANT EXECUTE ON SYS.DBMS_LOGMNR_LOGREP_DICT TO "DD_USRDATA"; GRANT EXECUTE ON SYS.DBMS_LOGMNR_SESSION TO "DD_USRDATA"; GRANT EXECUTE ON DBMS_FLASHBACK TO "DD_USRDATA"; GRANT FLASHBACK ANY TABLE TO "DD_USRDATA"; GRANT FLASHBACK ARCHIVE ADMINISTER TO "DD_USRDATA"; GRANT LOGMINING TO "DD_USRDATA"; GRANT SELECT ANY DICTIONARY TO "DD_USRDATA"; GRANT SELECT ON V_$LOGMNR_CONTENTS TO "DD_USRDATA"; GRANT SELECT ON V_$LOGMNR_DICTIONARY TO "DD_USRDATA"; GRANT SELECT ON V_$LOGMNR_PARAMETERS TO "DD_USRDATA"; GRANT SELECT ON V_$LOGMNR_LOGS TO "DD_USRDATA"; GRANT SELECT ON V_$LOG TO "DD_USRDATA"; GRANT SELECT ON V_$LOGFILE TO "DD_USRDATA"; GRANT SELECT ON V_$ARCHIVED_LOG TO "DD_USRDATA"; GRANT SELECT ON V_$PARAMETER TO "DD_USRDATA"; GRANT SELECT ON V_$DATABASE TO "DD_USRDATA"; GRANT SELECT ON v_$instance TO "DD_USRDATA"; GRANT SELECT ON SYS.CDEF$ TO "DD_USRDATA"; GRANT SELECT ON SYS.USER$ TO "DD_USRDATA"; GRANT SELECT ON SYS.OBJ$ TO "DD_USRDATA"; GRANT SELECT ON SYS.COL$ TO "DD_USRDATA"; GRANT SELECT ON SYS.ALL_CONSTRAINTS TO "DD_USRDATA"; GRANT SELECT ON SYS.all_catalog TO "DD_USRDATA"; GRANT SELECT ON SYS.dba_objects TO "DD_USRDATA"; GRANT SELECT ON SYS.dba_cons_columns TO "DD_USRDATA"; GRANT SELECT ON SYS.V_$DATABASE TO "DD_USRDATA"; GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO "DD_USRDATA"; GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO "DD_USRDATA"; GRANT SELECT ON product_component_version TO "DD_USRDATA";
- Assurez-vous d'avoir les droits d'accès suivants sur la base de données source :
- Droit en lecture sur les tables dans SYS :
- dbms_flashback.get_system_change_number,
- partobj$.
- Droit d'exécution :
- DBMS_LOGMNR.START_LOGMNR,
- DBMS_LOGMNR.ADD_LOGFILE,
- DBMS_LOGMNR.ADDFILE,
- DBMS_LOGMNR.END_LOGMNR,
- DBMS_LOGMNR.NEW,
- DBMS_LOGMNR.REMOVEFILE.
- Sur chaque schéma à capturer : le droit GRANT SELECT.
- Pour chaque table à capturer :
- ALTER TABLE schema.table ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS,
- ALTER TABLE schema.table DROP SUPPLEMENTAL LOG DATA (ALL) COLUMNS.
- Sur le schéma cible : assurez-vous d'avoir un profil utilisateur·trice avec les droits en lecture/écriture.
- Droit en lecture sur les tables dans SYS :