You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spanner模拟器运行Spring Boot JPA项目报spanner.sessions.create权限缺失错误

问题原因

你遇到的权限报错核心原因是应用实际未连接到本地Spanner模拟器,而是默认请求了Google Cloud线上的Spanner服务:

  • 你当前配置的JDBC连接URL没有指定模拟器相关参数,Spanner JDBC驱动默认会走线上服务地址,不会自动识别本地运行的模拟器
  • 控制台输出的DefaultCredentialsProvider警告也可以佐证:驱动正在加载你本地GCP SDK的用户凭证尝试请求线上服务,完全没有触发模拟器的无鉴权逻辑,你配置的test-project、test-instance都是线上不存在的测试资源,自然会返回IAM权限不足的错误。

解决方案

按以下步骤修改配置即可解决:

  1. 修改JDBC连接URL,添加模拟器配置参数
    直接在现有URL后追加autoConfigEmulator=true参数,驱动会自动适配本地默认端口(9010)的模拟器、关闭鉴权校验:
    spring.datasource.url=jdbc:cloudspanner:/projects/test-project/instances/test-instance/databases/test-database?autoConfigEmulator=true
    
    如果你自定义了模拟器的启动端口,用以下格式配置即可:
    spring.datasource.url=jdbc:cloudspanner://localhost:你的自定义端口/projects/test-project/instances/test-instance/databases/test-database?usePlainText=true
    
  2. 确认本地模拟器已提前创建好对应资源
    启动模拟器后,需要先创建对应测试实例和数据库才能正常连接:
    • 创建测试实例:gcloud spanner instances create test-instance --config=emulator-config --description="Test Instance" --nodes=1 --project=test-project
    • 创建测试数据库:gcloud spanner databases create test-database --instance=test-instance --project=test-project
  3. 重启Spring Boot应用,此时访问接口就不会再触发权限报错。

内容的提问来源于stack exchange,提问作者shanky442

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:15:03