-
Feature Request
-
Resolution: Done
-
Major
-
1.8.0.Final
-
None
-
False
-
False
-
Our source database may not be able to provide lock and flashback permissions to the database user for the oracle connector, as per the documentation.
Is it possible to run debezium without those permissions? Please share the reason for this privileges as well, might be helpful for our DBA to understand the requirement.
Currently, the connector is throwing an error due to lack of privileges. Below is the error traceback:
"trace": "org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.\r\n\tat io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:42)\r\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:115)\r\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\r\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n\tat java.lang.Thread.run(Thread.java:748)\r\nCaused by: io.debezium.DebeziumException: java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges\n\r\n\tat io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:85)\r\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.doSnapshot(ChangeEventSourceCoordinator.java:153)\r\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.executeChangeEventSources(ChangeEventSourceCoordinator.java:135)\r\n\tat io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:108)\r\n\t... 5 more\r\nCaused by: java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges\n\r\n\tat oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)\r\n\tat oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)\r\n\tat oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1052)\r\n\tat oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:537)\r\n\tat oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:255)\r\n\tat oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610)\r\n\tat oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:213)\r\n\tat oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:37)\r\n\tat oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:887)\r\n\tat oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1136)\r\n\tat oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1754)\r\n\tat oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1709)\r\n\tat oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:300)\r\n\tat io.debezium.connector.oracle.OracleSnapshotChangeEventSource.lockTablesForSchemaSnapshot(OracleSnapshotChangeEventSource.java:113)\r\n\tat io.debezium.relational.RelationalSnapshotChangeEventSource.doExecute(RelationalSnapshotChangeEventSource.java:106)\r\n\tat io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:76)\r\n\t... 8 more\r\nCaused by: Error : 1031, Position : 19, Sql = LOCK TABLE \"schema\".\"table_name\" IN ROW SHARE MODE, OriginalSql = LOCK TABLE \"schema\".\"table_name\" IN ROW SHARE MODE, Error Msg = ORA-01031: insufficient privileges\n\r\n\tat oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498)\r\n\t... 23 more\r\n"
Thanks!