Skip to main content
Feedback

Oracle required permissions

This topic lists all Oracle permissions required to use Oracle with Data Integration. Permissions are organized by use case: standard rivers, CDC, flashback query, and synonym support.

Standard river permissions

For standard (incremental or full load) rivers, the Oracle user requires basic access to read data and metadata. In multi-tenant environments, apply these grants to the local PDB user.

PermissionPurpose
CREATE SESSIONConnect to the database.
CONNECT, RESOURCEStandard session and resource access.
SELECT ON ALL_TABLESAccess table metadata.
SELECT ON ALL_VIEWSAccess view metadata.
SELECT ON ALL_TAB_COLUMNSRead column definitions.
GRANT CREATE SESSION TO <username>;
GRANT CONNECT, RESOURCE TO <username>;
GRANT SELECT ON ALL_TABLES TO <username>;
GRANT SELECT ON ALL_VIEWS TO <username>;
GRANT SELECT ON ALL_TAB_COLUMNS TO <username>;

CDC permissions: single-tenant

For CDC rivers on single-tenant (non-CDB) Oracle instances, the following privileges must be granted directly to the user. Roles alone are not sufficient.

PermissionPurpose
SELECT ANY TRANSACTIONQuery the V$LOGMNR_CONTENTS view.
SELECT_CATALOG_ROLEQuery Oracle data dictionary views.
EXECUTE_CATALOG_ROLEExecute SYS packages including DBMS_LOGMNR.
GRANT SELECT ANY TRANSACTION TO <username>;
GRANT SELECT_CATALOG_ROLE TO <username>;
GRANT EXECUTE_CATALOG_ROLE TO <username>;

CDC permissions: multi-tenant (CDB user)

For CDC rivers on multi-tenant (CDB/PDB) Oracle instances, a Common User (c##user) at the CDB level is required. This user reads redo and archive logs across all PDBs.

PermissionScopePurpose
CREATE SESSION, ALTER SESSION, SET CONTAINERCONTAINER=ALLConnect and switch between PDBs.
SELECT ON V$CONTAINERSAccess container metadata.
SELECT ON SYS.V_$DATABASERead database identity and incarnation info.
SELECT ON SYS.V_$PARAMETERRead database parameters.
SELECT ON SYS.V_$ARCHIVED_LOGAccess archived log metadata.
SELECT ON SYS.V_$ARCHIVE_DESTAccess archive destination info.
SELECT ON SYS.V_$LOGMNR_CONTENTSRead LogMiner redo log events.
SELECT ON SYS.V_$LOGCONTAINER=ALLRead log group info across PDBs.
SELECT ON SYS.V_$LOG_HISTORYCONTAINER=ALLAccess log history across PDBs.
SELECT ON SYS.V_$LOGMNR_LOGSCONTAINER=ALLAccess LogMiner log info across PDBs.
SELECT ON SYS.V_$LOGMNR_PARAMETERSCONTAINER=ALLRead LogMiner parameters across PDBs.
SELECT ON SYS.V_$LOGFILECONTAINER=ALLAccess log file info across PDBs.
SELECT ON SYS.V_$ARCHIVE_DEST_STATUSCONTAINER=ALLRead archive destination status across PDBs.
SELECT ON SYS.V_$TRANSACTIONCONTAINER=ALLAccess transaction metadata across PDBs.
SELECT ON V_$MYSTATCONTAINER=ALLSession statistics.
SELECT ON V_$STATNAMECONTAINER=ALLStatistic name lookup.
EXECUTE ON DBMS_LOGMNRRun LogMiner procedures.
EXECUTE ON DBMS_LOGMNR_DAccess LogMiner dictionary procedures.
SELECT ANY TRANSACTIONQuery V$LOGMNR_CONTENTS.
EXECUTE_CATALOG_ROLEExecute SYS packages.
LOGMININGUse Oracle LogMiner.
ALTER SESSION SET CONTAINER=CDB$ROOT;
CREATE USER c##user IDENTIFIED BY <PASSWORD> CONTAINER=ALL;
GRANT CREATE SESSION, ALTER SESSION, SET CONTAINER TO c##user CONTAINER=ALL;
ALTER USER c##user SET CONTAINER_DATA=ALL CONTAINER=CURRENT;

GRANT SELECT ON V$CONTAINERS TO c##user;
GRANT SELECT ON SYS.V_$DATABASE TO c##user;
GRANT SELECT ON SYS.V_$PARAMETER TO c##user;
GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO c##user;
GRANT SELECT ON SYS.V_$ARCHIVE_DEST TO c##user;
GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO c##user;
GRANT SELECT ON SYS.V_$LOG TO c##user CONTAINER=ALL;
GRANT SELECT ON SYS.V_$LOG_HISTORY TO c##user CONTAINER=ALL;
GRANT SELECT ON SYS.V_$LOGMNR_LOGS TO c##user CONTAINER=ALL;
GRANT SELECT ON SYS.V_$LOGMNR_PARAMETERS TO c##user CONTAINER=ALL;
GRANT SELECT ON SYS.V_$LOGFILE TO c##user CONTAINER=ALL;
GRANT SELECT ON SYS.V_$ARCHIVE_DEST_STATUS TO c##user CONTAINER=ALL;
GRANT SELECT ON SYS.V_$TRANSACTION TO c##user CONTAINER=ALL;
GRANT SELECT ON V_$MYSTAT TO c##user CONTAINER=ALL;
GRANT SELECT ON V_$STATNAME TO c##user CONTAINER=ALL;
GRANT EXECUTE ON DBMS_LOGMNR TO c##user;
GRANT EXECUTE ON DBMS_LOGMNR_D TO c##user;
GRANT SELECT ANY TRANSACTION TO c##user;
GRANT EXECUTE_CATALOG_ROLE TO c##user;
GRANT LOGMINING TO c##user;

CDC permissions: flashback query

To support DDL synchronization and schema drift detection, the connector user requires one of the following options. For full details, refer to Oracle CDC DDL and flashback query.

Option A: system-level (recommended):

GRANT EXECUTE ON SYS.DBMS_FLASHBACK TO <connector_user>;

Option B: object-level (if system-level access is restricted):

GRANT SELECT, FLASHBACK ON <schema>.<table_name> TO <connector_user>;

CDC permissions: synonym support

When using Oracle synonyms or editioning views as CDC sources, additional SELECT permissions are required on Oracle dictionary views. These are split into two groups: views used at CDC runtime, and views used when configuring a river in the Data Integration UI. For full details, refer to Oracle CDC with synonym support.

CDC runtime

Oracle dictionary viewPurposeSingle-tenantMulti-tenant (CDB)
ALL_OBJECTS_AEEdition-aware object type classification for chain resolution.RequiredRequired
ALL_SYNONYMSSynonym chain resolution.RequiredRequired
ALL_EDITIONING_VIEWS_AEEditioning view to base table (all editions).RequiredRequired
ALL_TAB_COLUMNSPhysical table column metadata.RequiredRequired
V$DATABASECurrent SCN, supplemental logging, and archive log mode checks.RequiredCovered by CDB grants above
V$LOGMNR_LOGSLog files in active LogMiner session.RequiredCovered by CDB grants above
V$ARCHIVE_DESTFilter archived logs by valid destination.RequiredCovered by CDB grants above
V$VERSIONOracle version detection at startup.RequiredRequired
V$ARCHIVED_LOGAccess archived logs for historical CDC.RequiredCovered by CDB grants above
V$LOGFILEIdentify active redo log files.RequiredCovered by CDB grants above
V$LOGCurrent log group status.RequiredCovered by CDB grants above
V$INSTANCEDatabase instance information.RequiredRequired
GRANT SELECT ON ALL_OBJECTS_AE TO <username>;
GRANT SELECT ON ALL_SYNONYMS TO <username>;
GRANT SELECT ON ALL_EDITIONING_VIEWS_AE TO <username>;
GRANT SELECT ON ALL_TAB_COLUMNS TO <username>;
GRANT SELECT ON V$DATABASE TO <username>;
GRANT SELECT ON V$LOGMNR_LOGS TO <username>;
GRANT SELECT ON V$ARCHIVE_DEST TO <username>;
GRANT SELECT ON V$VERSION TO <username>;
GRANT SELECT ON V$ARCHIVED_LOG TO <username>;
GRANT SELECT ON V$LOGFILE TO <username>;
GRANT SELECT ON V$LOG TO <username>;
GRANT SELECT ON V$INSTANCE TO <username>;
note

Multi-tenant (CDB) users already receive several of these grants in the CDC permissions: multi-tenant (CDB user) section above. Apply only the additional grants marked Required for single-tenant environments.

River configuration UI

Grant the following permissions to enable table and synonym selection during river configuration in Data Integration.

Oracle dictionary viewPurposeSingle-tenantMulti-tenant (CDB)
ALL_OBJECTSTable and synonym listing in the river configuration UI.RequiredRequired
ALL_VIEWSEditioning view detection via EDITIONING_VIEW column.RequiredRequired
ALL_EDITIONING_VIEWSEditioning view to base table (current edition).RequiredRequired
ALL_TAB_COLUMNSColumn metadata for field mapping.RequiredRequired
DBA_SEGMENTSTable size estimation.RequiredRequired
DBA_TABLESTable listing joined with DBA_SEGMENTS for size data.RequiredRequired
ALL_TAB_PARTITIONSPartitioned table chunking during data load.RequiredRequired
GRANT SELECT ON ALL_OBJECTS TO <username>;
GRANT SELECT ON ALL_VIEWS TO <username>;
GRANT SELECT ON ALL_EDITIONING_VIEWS TO <username>;
GRANT SELECT ON ALL_TAB_COLUMNS TO <username>;
GRANT SELECT ON DBA_SEGMENTS TO <username>;
GRANT SELECT ON DBA_TABLES TO <username>;
GRANT SELECT ON ALL_TAB_PARTITIONS TO <username>;
On this Page