开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flinkcdc oracle 必须用dba用户吗?

flinkcdc oracle 必须用dba用户吗?

展开
收起
真的很搞笑 2023-06-29 08:38:01 186 0
11 条回答
写回答
取消 提交回答
  • 在使用Flink CDC同步Oracle的表时,您可以使用普通用户或DBA用户。但是,使用DBA用户可能会更方便,因为DBA用户具有更高的权限,可以更容易地访问和操作Oracle数据库中的表和数据。
    如果您使用普通用户,则需要在Oracle数据库中为该用户授权,以便该用户可以访问和操作同步表。您还需要在Flink CDC中配置正确的用户名和密码,以便Flink CDC可以连接到Oracle数据库并读取数据变更信息。
    如果您使用DBA用户,则不需要为该用户授权,因为DBA用户已经具有足够的权限来访问和操作Oracle数据库中的表和数据。您只需要在Flink CDC中配置正确的用户名和密码,以便Flink CDC可以连接到Oracle数据库并读取数据变更信息。
    请注意,使用Flink CDC和Oracle进行数据同步可能会影响数据同步的性能。如果您的数据集非常大,则可能需要考虑使用其他数据同步工具或方法来实现数据同步。

    2023-09-11 09:54:48
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    为了降低用户从MySQL数据库或Oracle数据库迁移到OceanBase数据库时引发的业务系统改造成本,OceanBase数据库同时支持了MySQL兼容模式和Oracle兼容模式,两种兼容模式下的数据类型、SQL功能、内部视图等相应地与MySQL数据库或Oracle数据库保持一致。
    维表和结果表

    Flink计算引擎VVR 8.0.1及以上版本支持OceanBase连接器。

    语义上可以保证At-Least-Once,在结果表有主键的情况下,幂等可以保证数据的正确性。

    结果表:OceanBase数据库没有部署OceanBase数据库代理时,连接器会使用OCJ(OceanBase Connector Java)连接OceanBase数据库,该模式需要用到config url,要求OceanBase数据库部署有OceanBase云平台。该工作方式只能用于OceanBase数据库的MySQL兼容模式,不支持Oracle兼容模式。

    CREATE TABLE oceanabse_source (
       order_id INT,
       order_date TIMESTAMP(0),
       customer_name STRING,
       price DECIMAL(10, 5),
       product_id INT,
       order_status BOOLEAN,
       PRIMARY KEY(order_id) NOT ENFORCED
    ) WITH (
      'connector' = 'oceanbase',
      'url' = '<yourJdbcUrl>',
      'tableName' = '<yourTableName>',
      'userName' = '<yourUserName>',
      'password' = '<yourPassword>'
    );
    

    image.png

    2023-08-25 15:59:19
    赞同 展开评论 打赏
  • 不,FlinkCDC Oracle不必须使用DBA用户。但是,为了执行特定的操作,如创建日志挖掘表和启用CDC功能,可能需要使用DBA用户或具有足够权限的用户。

    2023-08-23 22:38:24
    赞同 展开评论 打赏
  • 不建议用DBA用户,可以创建flinkcdc专属用户。

    例如:账号为 flinkuser 密码为flinkpw,(执行命令中用户、密码、主机、端口需自行替换)

    sqlplus sys/password@host:port/SID AS SYSDBA;
      CREATE USER flinkuser IDENTIFIED BY flinkpw DEFAULT TABLESPACE LOGMINER_TBS QUOTA UNLIMITED ON LOGMINER_TBS;
      GRANT CREATE SESSION TO flinkuser;
      GRANT SET CONTAINER TO flinkuser;
      GRANT SELECT ON V_$DATABASE to flinkuser;
      GRANT FLASHBACK ANY TABLE TO flinkuser;
      GRANT SELECT ANY TABLE TO flinkuser;
      GRANT SELECT_CATALOG_ROLE TO flinkuser;
      GRANT EXECUTE_CATALOG_ROLE TO flinkuser;
      GRANT SELECT ANY TRANSACTION TO flinkuser;
      GRANT LOGMINING TO flinkuser;
    
      GRANT CREATE TABLE TO flinkuser;
      -- need not to execute if set scan.incremental.snapshot.enabled=true(default)
      GRANT LOCK ANY TABLE TO flinkuser;
      GRANT ALTER ANY TABLE TO flinkuser;
      GRANT CREATE SEQUENCE TO flinkuser;
    
      GRANT EXECUTE ON DBMS_LOGMNR TO flinkuser;
      GRANT EXECUTE ON DBMS_LOGMNR_D TO flinkuser;
    
      GRANT SELECT ON V_$LOG TO flinkuser;
      GRANT SELECT ON V_$LOG_HISTORY TO flinkuser;
      GRANT SELECT ON V_$LOGMNR_LOGS TO flinkuser;
      GRANT SELECT ON V_$LOGMNR_CONTENTS TO flinkuser;
      GRANT SELECT ON V_$LOGMNR_PARAMETERS TO flinkuser;
      GRANT SELECT ON V_$LOGFILE TO flinkuser;
      GRANT SELECT ON V_$ARCHIVED_LOG TO flinkuser;
      GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO flinkuser;
      exit;
    
    2023-08-22 17:03:42
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,在阿里云Flink CDC中,如果要使用Oracle作为源端数据库,建议使用具有SYSDBA权限的DBA用户来进行数据源端的配置和操作。
    image.png

    这是因为SYSDBA权限的用户具有更高的权限,可以访问Oracle数据库的系统级别对象和功能,以及在数据源端进行必要的日志配置和管理。
    image.png

    此外,使用具有DBA权限的用户也可以更好地保证阿里云Flink CDC与Oracle数据库之间的数据同步和安全性。具体可以参考文档:
    image.png

    2023-08-21 10:54:58
    赞同 展开评论 打赏
  • 不一定需要使用 dba 用户来配置 Flink CDC 连接 Oracle 数据库。
    通常需要提供以下权限来实现从 Oracle 同步数据变更到 Kafka:

    1. CREATE SESSION 权限,用于连接数据库
    2. SELECT 权限,用于读取源表数据
    3. EXECUTE 权限,用于访问 LogMiner 相关包
    4. SELECT ANY TRANSACTION,用于读取数据库日志并解析 DDL/DML 变更
    5. V$开头的视图访问权限,用于获取数据库元数据
      所以可以创建一个专用于 CDC 的用户,授予上述权限即可,不一定是 dba 用户。
      一些需要注意的点:
    6. 如果需要读取全部表,可以直接赋予 SELECT ANY TABLE 的权限
    7. 授予访问 LogMiner 相关对象和视图的最小权限集
    8. 不要赋予 CREATE ANY TABLE 等高危权限
    9. 采用谨慎的权限分配原则,避免过度授权
      综上,设置一个自定义的限定权限用户就可以实现 Flink CDC 同步 Oracle 的需求,不强制使用 dba 用户。
    2023-08-16 14:42:10
    赞同 展开评论 打赏
  • 不一定,可以使用其他用户创建并管理 Flink CDC 数据源。但是,如果使用 DBA 用户,则可以更轻松地管理数据库和表的权限和配置。此外,如果您打算将 Flink CDC 数据源集成到现有的数据平台中,使用 DBA 用户可能会更方便。

    2023-08-15 18:44:23
    赞同 展开评论 打赏
  • 在使用Flink CDC同步Oracle表数据时,并不一定需要使用DBA用户。但是,为了保证Flink CDC正常运行并能够捕获增量变更,建议使用具有足够权限的Oracle用户进行配置。

    在Oracle数据库中,DBA用户是一个特殊的用户,拥有最高级别的系统权限。使用DBA用户进行Flink CDC配置可以确保Flink CDC能够访问Oracle数据库的所有对象,并监视数据库的所有操作。但是,由于DBA用户拥有如此高的权限,因此建议不要在生产环境中直接使用DBA用户进行Flink CDC配置。

    相反,建议创建一个专用的用户,授予该用户足够的权限以访问需要监视的表和其他对象,并使用该用户进行Flink CDC配置。该用户应该至少拥有以下权限:SELECT ANY TABLE、CREATE SESSION、CREATE TRIGGER、CREATE PROCEDURE、CREATE TABLE、CREATE VIEW等。

    在Flink CDC中,需要使用以下参数来连接Oracle数据库:

    • jdbc.driverClass:指定Oracle JDBC驱动程序的类名。
    • jdbc.url:指定Oracle数据库的连接URL。
    • jdbc.username:指定用于连接Oracle数据库的用户名。
    • jdbc.password:指定用于连接Oracle数据库的密码。
    • database.server.name:指定要监视的Oracle数据库的名称。
    • database.history.kafka.bootstrap.servers:指定Kafka集群的地址。
    • database.history.kafka.topic:指定用于存储数据库历史记录的Kafka主题名称。
      image.png
      image.png
    2023-08-15 11:30:44
    赞同 1 展开评论 打赏
  • 北京阿里云ACE会长

    Flink CDC从Oracle中读取binlog日志不一定必须使用DBA用户,具体情况如下:

    如果需要读取所有表的binlog,则需要DBA权限来开启日志 archivelog 模式。

    如果只需要读取特定schema下的表,则对应schema的权限就足够。

    Oracle用户至少需要SELECT对象特权和SELECT ON V_$LOG权限。

    Oracle 11g版本后,使用SELECT ON DBA_LOG_GROUP_COLUMNS表也可以实现CDC功能。

    Oracle无需开启动态性能视图也可以,但需要通过DBA用户一次性查询需要信息。

    非DBA用户通过flashback机制也可以实现实时数据解析。

    所以总体来说:

    若读取所有表,建议DBA权限更高效

    若限于特定对象,对应 schema 权限就足够了

    11g版本后 SELECT 权限基本可以实现同步

    非DBA用户也可以实现,但依赖于恰当设置日志出入参和用户权限。用DBA更直接高效一些。

    2023-08-14 15:35:12
    赞同 展开评论 打赏
  • 全栈JAVA领域创作者

    如果您想要使用Flink CDC连接Oracle数据库,可以通过以下方式进行:

    查看Flink CDC的配置文件:在Flink CDC的配置文件中,可以查看connector参数,以确定Flink CDC支持的数据库类型。例如,如果您的Flink CDC支持连接Oracle数据库,那么您可以在connector参数中指定Oracle数据库的连接信息。
    查看Flink CDC的启动命令:在Flink CDC的启动命令中,可以查看--add-plugins参数,以确定Flink CDC支持的数据库类型。例如,如果您的Flink CDC支持连接Oracle数据库,那么您可以在--add-plugins参数中指定Oracle数据库的插件信息。
    需要注意的是,如果您在生产环境中使用Flink CDC连接Oracle数据库,那么您需要确保Flink CDC使用的是稳定版本的Oracle数据库连接器。同时,您还需要确保Flink CDC的数据备份和恢复机制,以保证数据的安全性和可靠性。

    2023-08-14 13:47:56
    赞同 展开评论 打赏
  • 是的,通常在使用FlinkCDC连接Oracle数据库时,需要使用具有DBA权限的用户进行登录。这是因为FlinkCDC需要对数据库进行DDL操作(如创建表、修改表结构等),而这些操作通常只有DBA用户才能执行。此外,使用DBA用户还可以确保在执行过程中不会受到普通用户权限的限制。

    然而,这并不意味着你必须手动输入DBA用户的凭据。实际上,你可以在Flink作业配置文件中设置一个具有DBA权限的用户,并在该用户下运行Flink作业。这样一来,即使你不直接提供DBA用户的凭据,也可以保证作业的安全性和稳定性。

    2023-08-14 10:23:27
    赞同 展开评论 打赏
滑动查看更多

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载

相关镜像