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

Flink CDC测试的到实例的权限只读 就可以读取到数据 但是 到库到表 都报错?

Flink CDC测试的到实例的权限只读 就可以读取到数据 但是 到库到表 都报错?Caused by: com.mongodb.MongoCommandException: Command failed with error 13 (Unauthorized): 'not authorized on admin to execute command { aggregate: 1, pipeline: [ { $changeStream: { allChangesForCluster: true } } ], cursor: { batchSize: 1 }, $db: "admin", $clusterTime: { clusterTime: Timestamp(1699422172, 1), signature: { hash: BinData(0, 4D6D5F6D922D32E4E87A7A0DB418837C42205042), keyId: 7256179845946671105 } }, lsid: { id: UUID("9a93b977-05c6-40cd-9933-07831134faf9") }, $readPreference: { mode: "secondaryPreferred" } }' on server dds-uf628e326955e1342.mongodb.rds.aliyuncs.com:3717. The full response is {"operationTime": {"$timestamp": {"t": 1699422172, "i": 1}}, "ok": 0.0, "errmsg": "not authorized on admin to execute command { aggregate: 1, pipeline: [ { $changeStream: { allChangesForCluster: true } } ], cursor: { batchSize: 1 }, $db: \"admin\", $clusterTime: { clusterTime: Timestamp(1699422172, 1), signature: { hash: BinData(0, 4D6D5F6D922D32E4E87A7A0DB418837C42205042), keyId: 7256179845946671105 } }, lsid: { id: UUID(\"9a93b977-05c6-40cd-9933-07831134faf9\") }, $readPreference: { mode: \"secondaryPreferred\" } }", "code": 13, "codeName": "Unauthorized", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1699422172, "i": 1}}, "signature": {"hash": {"$binary": {"base64": "TW1fbZItMuToenoNtBiDfEIgUEI=", "subType": "00"}}, "keyId": 7256179845946671105}}}感觉就是权限没给到位的感觉

展开
收起
cuicuicuic 2023-11-16 07:54:06 62 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    看起来你可能没有在你的MongoDB数据库中正确地设置授权。请确保你的用户有对需要的数据库和集合进行读写的权限。
    你可以通过运行下面的命令来为用户添加权限:

    use <database>
    db.grantRolesToUser(<username>, [{role:"readWrite", db:<database>}])
    

    这将会为<username>赋予在<database>上进行读写的能力。如果你需要在多个数据库或集合上设置权限,你需要分别为每个数据库或集合运行这个命令,并将<database>替换为你希望赋予权限的数据库或集合的名称。
    另外,请确保你正在使用的用户凭证(即用户名和密码)是正确的,且被用来连接到正确的数据库实例。

    2023-11-16 13:27:15
    赞同 展开评论 打赏
  • 这个问题是由于Flink CDC在尝试执行MongoDB的聚合管道时,没有足够的权限。你需要确保你的Flink CDC实例具有足够的权限来执行这个操作。

    你可以尝试以下步骤来解决这个问题:

    1. 登录到MongoDB服务器。
    2. 切换到admin数据库。
    3. 为Flink CDC实例创建一个用户,并授予它足够的权限。例如,你可以创建一个名为flink_cdc的用户,并为其授予所有数据库的所有角色。
    4. 更新Flink CDC实例的配置,使其使用新创建的用户和密码进行身份验证。
    5. 重新启动Flink CDC实例,看看问题是否得到解决。

    如果问题仍然存在,你可能需要检查你的Flink CDC配置,确保它正确地指向了MongoDB服务器,并且使用了正确的用户名和密码。

    2023-11-16 10:22:42
    赞同 展开评论 打赏
  • 'not authorized on admin to execute command { aggregate: 1, pipeline: [ { $changeStream: { allChangesForCluster: tr
    https://github.com/ververica/flink-cdc-connectors/pull/1938这是个之前的bug,在2.4.0修复了,试试2.4.0以上看看,此回答整理自钉群“Flink CDC 社区”

    2023-11-16 08:26:33
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    移动互联网测试到质量的转变 立即下载
    给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
    F2etest — 多浏览器兼容性测试整体解决方案 立即下载