【问题标题】:Spanner Emulator - Caller is missing IAM permission spanner.sessions.create on resourceSpanner Emulator - 调用者在资源上缺少 IAM 权限 spanner.sessions.create
【发布时间】:2021-02-08 12:34:48
【问题描述】:

尝试使用 Java 客户端 API 在本地模拟器上执行查询时,我收到以下错误 -

com.google.cloud.spanner.SpannerException: PERMISSION_DENIED: com.google.api.gax.rpc.PermissionDeniedException: io.grpc.StatusRuntimeException: PERMISSION_DENIED: Caller is missing IAM permission spanner.sessions.create on resource projects/test-project/instances/test-instance/databases/testdatabase.

我如何为该用户提供在本地扳手模拟器上创建会话的能力?

【问题讨论】:

    标签: google-cloud-spanner google-cloud-spanner-emulator


    【解决方案1】:

    首先确保您已按照following steps 正确配置您的本地环境。基本上确保所有与 Cloud Spanner 相关的 API 都已启用并运行以下命令:

    gcloud auth application-default login
    

    通过确保用于身份验证的帐户具有具有足够权限的角色,如Access Control documentation 所述。 Cloud Spanner Database Admin 应该允许您发出查询,但如果您认为提到的预定义角色授予的权限过多,您可以创建一个 custom role

    official documentation 建议创建一个单独的gcloud configuration 并确保您设置SPANNER_EMULATOR_HOST 环境变量是按以下方式设置的(检查正确的信息here

    export SPANNER_EMULATOR_HOST=localhost:9010
    

    【讨论】:

    • 我按照所有说明进行操作,但忘记导出变量 SPANNER_EMULATOR_HOST
    【解决方案2】:

    Cloud Spanner 模拟器没有实现任何 IAM,并且需要您在没有任何凭据的情况下连接到它,所以乍一看,这个错误似乎表明:

    1. 毕竟你没有连接到模拟器,这个错误来自真正的 Cloud Spanner。
    2. 您已使用凭据连接到模拟器。

    您介意分享创建连接的代码部分吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 2020-06-09
      • 2021-01-20
      相关资源
      最近更新 更多