Flink CDC Oracle 用户权限不足 ORA-01031: insufficient privileges

这篇具有很好参考价值的文章主要介绍了Flink CDC Oracle 用户权限不足 ORA-01031: insufficient privileges。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Flink CDC Oracle用户权限不足
版本:flink1.14.5 、flinkcdc 2.2.1、oracle11g、
场景:flink cdc 实时抽取oracle的数据表。DBA为了数据库安全考虑,对访问用户权限进行控制。将oracle的flinkuser用户XE下的orders表授权只读权限给readuser用户。授权情况如下:

create user readuser identified by '123456';
grant create session,execute_catalog_role,select_catalog_role to readuser;
grant select on flinkuser.orders to readuser;

此时执行flink oracle cdc 任务:

CREATE TABLE `default_catalog`.`default_database`.`orders` (
  `ORDER_ID` INT NOT NULL,
  `ORDER_DATE` TIMESTAMP(0),
  `CUSTOMER_NAME` VARCHAR(2147483647),
  `PRICE` DECIMAL(10, 5),
  `PRODUCT_ID` INT,
  `ORDER_STATUS` INT,
  CONSTRAINT `PK_2016962539` PRIMARY KEY (`ORDER_ID`) NOT ENFORCED
) WITH (
  'debezium.log.mining.continuous.mine' = 'true',
  'hostname' = '192.168.1.188',
  'password' = '123456',
  'debezium.log.mining.strategy' = 'online_catalog',
  'connector' = 'oracle-cdc',
  'port' = '1521',
  'database-name' = 'XE',
  'schema-name' = 'flinkuser',
  'table-name' = 'orders',
  'username' = 'readuser'
);

select * from orders;

taskmanger执行报错提示:

com.ververica.cdc.connectors.shaded.org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
	at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:42)
	at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:127)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: io.debezium.DebeziumException: com.ververica.cdc.connectors.shaded.org.apache.kafka.connect.errors.ConnectException: Snapshotting of table XE.FLINKUSER.ORDERS failed
	at io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:82)
	at io.debezium.pipeline.ChangeEventSourceCoordinator.lambda$start$0(ChangeEventSourceCoordinator.java:110)
	... 5 more
Caused by: com.ververica.cdc.connectors.shaded.org.apache.kafka.connect.errors.ConnectException: Snapshotting of table XE.FLINKUSER.ORDERS failed
	at io.debezium.relational.RelationalSnapshotChangeEventSource.createDataEventsForTable(RelationalSnapshotChangeEventSource.java:389)
	at io.debezium.relational.RelationalSnapshotChangeEventSource.createDataEvents(RelationalSnapshotChangeEventSource.java:305)
	at io.debezium.relational.RelationalSnapshotChangeEventSource.doExecute(RelationalSnapshotChangeEventSource.java:138)
	at io.debezium.pipeline.source.AbstractSnapshotChangeEventSource.execute(AbstractSnapshotChangeEventSource.java:71)
	... 6 more
Caused by: java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges

	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)
	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:550)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268)
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:229)
	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:41)
	at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:765)
	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:983)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
	at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1362)
	at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:369)
	at io.debezium.relational.RelationalSnapshotChangeEventSource.createDataEventsForTable(RelationalSnapshotChangeEventSource.java:340)
	... 9 more
Caused by: Error : 1031, Position : 26, Sql = SELECT * FROM "FLINKUSER"."ORDERS" AS OF SCN 8483955, OriginalSql = SELECT * FROM "FLINKUSER"."ORDERS" AS OF SCN 8483955, Error Msg = ORA-01031: insufficient privileges

	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513)
	... 22 more

初看,readuser用户没有读取表权限,但是已经授权表权限且通过dbeaver可以查询数据表。上向定位到debezium,百度发现debezium 采集数据是需要归档及logminer查询权限。尝试赋权:

grant flashback on flinkuser.orders to readuser;
grant select any transaction,select any dictionary to readuser;
grant select on SYSTEM.LOGMNR_COL$ to readuser;
grant select on SYSTEM.LOGMNR_OBJ$ to readuser;
grant select on SYSTEM.LOGMNR_USER$ to readuser;
grant select on SYSTEM.LOGMNR_UID$ to readuser;
grant select on V_$DATABASE to readuser;

重新运行任务,taskmanager执行依然报错权限不足,不过换了报错提示:
Caused by: Error : 1031, Position : 0, Sql = CREATE TABLE LOG_MINING_FLUSH(LAST_SCN NUMBER(19,0)), OriginalSql = CREATE TABLE LOG_MINING_FLUSH(LAST_SCN NUMBER(19,0)), Error Msg = ORA-01031: insufficient privileges at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513) ... 24 more
可见此处readuser没有建表权限,授权建表权限。

grant resource to readuser;

resource角色权限如下:
oracle 01031权限不足,oracle,flink,数据库
授权完成后再次执行flink cdc任务,此时没有报错能正常抽取数据:
oracle 01031权限不足,oracle,flink,数据库文章来源地址https://www.toymoban.com/news/detail-527908.html

到了这里,关于Flink CDC Oracle 用户权限不足 ORA-01031: insufficient privileges的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flink oracle cdc - Oracle Logminer CDC性能问题

    最近的项目中有用到Flink Oracle CDC实时到监听数据库变化,将变化的数据sink到Kafka。Oracle CDC依赖Debezium组件解析Redo Log与Archive Log,Debezium 通过Oracle 的Logminer解析Log。在我们生产环境遇到 运行一段时间后,再也查询不到数据,直到报miss log file异常(线上环境cron job 将一

    2024年02月08日
    浏览(85)
  • Flink CDC系列之:Oracle CDC Connector

    2023年08月23日
    浏览(51)
  • Flink CDC系列之:Oracle CDC 导入 Elasticsearch

    Flink CDC系列之:Oracle CDC Connector 该 Docker Compose 中包含的容器有: Oracle: Oracle 11g, 已经预先创建了 products 和 orders表,并插入了一些数据 Elasticsearch: orders 表将和 products 表进行join,join的结果写入Elasticsearch中 Kibana: 可视化 Elasticsearch 中的数据 在 docker-compose.yml 所在目录下运行如下

    2024年02月12日
    浏览(34)
  • flink oracle cdc实时同步(超详细)

    官方文档:https://github.com/ververica/flink-cdc-connectors/blob/release-master/docs/content/connectors/oracle-cdc.md 本文参照官方文档来记录Oracle CDC 的配置。 在本文开始前,需要先安装Oracle,有兴趣的同学可以参考博主之前写的《docker下安装oracle11g(一次安装成功)》。 如果要做oracle的实时同步

    2024年02月12日
    浏览(46)
  • Flink Oracle CDC Connector源码解读

    flink cdc是在flink的基础上对oracle的数据进行实时采集,底层使用的是debezium框架来实现,debezium使用oracle自带的logminer技术来实现。logminer的采集需要对数据库和采集表添加补充日志,由于oracle18c不支持对数据添加补充日志,所以目前支持的oracle11、12、19三个版本。 flink oracle

    2024年02月02日
    浏览(44)
  • Flink CDC 实时抽取 Oracle 数据-排错&调优

    Flink CDC 于 2021 年 11 月 15 日发布了最新版本 2.1,该版本通过引入内置 Debezium 组件,增加了对 Oracle 的支持。对该版本进行试用并成功实现了对 Oracle 的实时数据捕获以及性能调优,现将试用过程中的一些关键细节进行分享。 Oracle:11.2.0.4.0(RAC 部署) Flink:1.13.1 Hadoop:3.2.1

    2024年01月16日
    浏览(47)
  • Linux 下 普通用户创建文件(目录)权限不足问题

     原因:                 执行此操作的用户对上级目录 缺乏相应权限 上图中的上级目录为 test2 ,查看权限如下,其他用户的权限为  r-x(读和执行)   ,要在其下创建新文件还需要 写(w) 的权限  解决问题:修改test权限为 drwxr-x rwx        命令: chmod 757 test2 需要注

    2024年02月11日
    浏览(57)
  • Oracle取消DBA权限后,报错无表空间操作权限:ORA-01950:no privileges on tablespace ‘xxx‘

    背景: 用户A有被赋予DBA权限,因产生告警,需把DBA取消掉。 20230620取消用户A的dba权限; 20230627系统开始运行异常; 20230701经排查发现因无表空间操作权限导致存储过程执行insert语句失败; 20230701赋予表空间操作权限后系统恢复。 原因分析: 一、原因:oracle在回收某用户D

    2024年02月12日
    浏览(37)
  • Flink CDC 基于Oracle log archiving 实时同步Oracle表到Mysql

    环境说明: flink 1.15.2 Oracle 版本:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production mysql 版本:5.7 windows11 IDEA 本地运行 先上官网使用说明和案例:Oracle CDC Connector — Flink CDC documentation 1. Oracle 开启 log archiving (1).启用 log archiving         a:以DBA用户连接数据库    

    2024年02月11日
    浏览(47)
  • Flink CDC 基于Oracle log archiving 实时同步Oracle表到Mysql(无主键)

    环境说明: flink 1.15.2 Oracle 版本:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production mysql 版本:5.7 windows11 IDEA 本地运行 具体环境设置和maven依赖请看上篇:Flink CDC 基于Oracle log archiving 实时同步Oracle表到Mysql_彩虹豆的博客-CSDN博客 现在操作的是源表和目标表都无主键数

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包