微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spanner Emulator - 调用者缺少对资源的 IAM 权限 spanner.sessions.create

如何解决Spanner Emulator - 调用者缺少对资源的 IAM 权限 spanner.sessions.create

尝试使用 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.

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

解决方法

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

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

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

,

首先确保您已按照 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。