Hey folks!Â
I'm trying to connect de debezium 3.1.2 to a AWS RDS Oracle, but my infra team tell me that they can't set my grant like the documentation says (with C## prefix, and --ALL CONTAINERS).Â
When i try to run my connector with config bellow, i got the following error:Â
config:
  database.connection.adapter: "logminer"
  database.hostname: ""
  database.port: "1522"
  database.user: ""
  database.password: ""
  database.dbname: ""
  topic.prefix: "oracle-nix"
  table.include.list: "nix.GAIA083PRD.TME_ITPROC"
  snapshot.mode: "schema_only"
  snapshot.fetch.continuously: "true"
  schema.history.internal.kafka.bootstrap.servers: "midas-kafka-cluster-kafka-bootstrap:9092"
  schema.history.internal.kafka.topic: "schema-changes.oracle.nix.v3"
  schema.history.internal.store.only.captured.tables.ddl: "true"
error: Caused by: oracle.jdbc.OracleDatabaseException: ORA-65040: operation not allowed from within a pluggable database │
│ ORA-06512: at "SYS.DBMS_LOGMNR", line 78 │
│ ORA-06512: at line 1 │
│ │
│ at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:636) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:563) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1150) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:770) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:298) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:497) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:147) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1047) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.OracleStatement.executeSQLStatement(OracleStatement.java:1530) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1310) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3745) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3940) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4278) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1009) ~[bf7b17ca.jar:21.9.0.0.0] │
│ at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.initializeRedoLogsForMining(LogMinerStreamingChangeEventSource.java:412) ~[debezium-connector-oracle-3.1.2.Final.jar:3.1.2.Final] │
│ at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:179) ~[debezium-connector-oracle-3.1.2.Final.jar:3.1.2.Final] │
│ ... 9 moreAnd when i set the
database.pdb.name to my pdb name, i got the following error:Â
Caused by: oracle.jdbc.OracleDatabaseException: ORA-01031: insufficient privileges                                                                            │
│                                                                                                                      │
│   at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:636) ~[bf7b17ca.jar:21.9.0.0.0]                                                                    │
│   at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:563) ~[bf7b17ca.jar:21.9.0.0.0]                                                                    │
│   at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1150) ~[bf7b17ca.jar:21.9.0.0.0]                                                                      │
│   at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:770) ~[bf7b17ca.jar:21.9.0.0.0]                                                                        │
│   at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:298) ~[bf7b17ca.jar:21.9.0.0.0]                                                                         │
│   at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:497) ~[bf7b17ca.jar:21.9.0.0.0]                                                                          │
│   at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:111) ~[bf7b17ca.jar:21.9.0.0.0]                                                                     │
│   at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:1010) ~[bf7b17ca.jar:21.9.0.0.0]                                                                 │
│   at oracle.jdbc.driver.OracleStatement.executeSQLStatement(OracleStatement.java:1530) ~[bf7b17ca.jar:21.9.0.0.0]                                                            │
│   at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1310) ~[bf7b17ca.jar:21.9.0.0.0]                                                           │
│   at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:2162) ~[bf7b17ca.jar:21.9.0.0.0]                                                              │
│   at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:2117) ~[bf7b17ca.jar:21.9.0.0.0]                                                                  │
│   at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:327) ~[bf7b17ca.jar:21.9.0.0.0]                                                           │
│   at io.debezium.connector.oracle.OracleConnection.setContainerAs(OracleConnection.java:133) ~[debezium-connector-oracle-3.1.2.Final.jar:3.1.2.Final]                                          │
│   at io.debezium.connector.oracle.OracleConnection.resetSessionToCdb(OracleConnection.java:126) ~[debezium-connector-oracle-3.1.2.Final.jar:3.1.2.Final]                                        │
│   at io.debezium.connector.oracle.OracleSnapshotChangeEventSource.close(OracleSnapshotChangeEventSource.java:256) ~[debezium-connector-oracle-3.1.2.Final.jar:3.1.2.Final]                               │
│   at io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:109) ~[debezium-core-3.1.2.Final.jar:3.1.2.Final]                                   │
│   at io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:294) ~[debezium-core-3.1.2.Final.jar:3.1.2.Final]                                          │
│   at io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:278) ~[debezium-core-3.1.2.Final.jar:3.1.2.Final]                                          │
│   at io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:192) ~[debezium-core-3.1.2.Final.jar:3.1.2.Final]                                  │
│   at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:143) ~[debezium-core-3.1.2.Final.jar:3.1.2.Final]                                        │
│   ... 5 moreThe infra team executed the grants bellow for my user:Â
Â
-- 4 Roles for DATALAKECDC
 GRANT CONNECT TO DATALAKECDC;
 GRANT EXECUTE_CATALOG_ROLE TO DATALAKECDC;
 GRANT READ_NIX_PRD TO DATALAKECDC;
 GRANT SELECT_CATALOG_ROLE TO DATALAKECDC;
 ALTER USER DATALAKECDC DEFAULT ROLE ALL;
 -- 8 System Privileges for DATALAKECDC
 GRANT CREATE SEQUENCE TO DATALAKECDC;
 GRANT CREATE SESSION TO DATALAKECDC;
 GRANT CREATE TABLE TO DATALAKECDC;
 GRANT FLASHBACK ANY TABLE TO DATALAKECDC;
 GRANT LOCK ANY TABLE TO DATALAKECDC;
 GRANT LOGMINING TO DATALAKECDC;
 GRANT SELECT ANY TABLE TO DATALAKECDC;
 GRANT SELECT ANY TRANSACTION TO DATALAKECDC;
 -- 1 Tablespace Quota for DATALAKECDC
 ALTER USER DATALAKECDC QUOTA UNLIMITED ON TBS_DATALAKEPRD;
 -- 17 Object Privileges for DATALAKECDC
  GRANT READ ON DIRECTORY ARCHIVELOG_DIR TO DATALAKECDC;
  GRANT EXECUTE ON SYS.DBMS_LOGMNR TO DATALAKECDC WITH GRANT OPTION;
  GRANT EXECUTE ON SYS.DBMS_LOGMNR_D TO DATALAKECDC WITH GRANT OPTION;
  GRANT READ ON DIRECTORY ONLINELOG_DIR TO DATALAKECDC;
  GRANT SELECT ON SYS.V_$ARCHIVE_DEST_STATUS TO DATALAKECDC WITH GRANT OPTION;
  GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO DATALAKECDC;
  GRANT SELECT ON SYS.V_$DATABASE TO DATALAKECDC;
  GRANT SELECT ON SYS.V_$LOG TO DATALAKECDC;
  GRANT SELECT ON SYS.V_$LOGFILE TO DATALAKECDC;
  GRANT SELECT ON SYS.V_$LOG_HISTORY TO DATALAKECDC WITH GRANT OPTION;
  GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO DATALAKECDC WITH GRANT OPTION;
  GRANT SELECT ON SYS.V_$LOGMNR_LOGS TO DATALAKECDC WITH GRANT OPTION;
  GRANT SELECT ON SYS.V_$LOGMNR_PARAMETERS TO DATALAKECDC WITH GRANT OPTION;
  GRANT SELECT ON SYS.V_$MYSTAT TO DATALAKECDC;
  GRANT SELECT ON SYS.V_$PARAMETER TO DATALAKECDC;
  GRANT SELECT ON SYS.V_$STATNAME TO DATALAKECDC;
  GRANT SELECT ON SYS.V_$TRANSACTION TO DATALAKECDC;What im missing??