Simba BigQuery ODBC驱动设置KeyFile为明文对象时提示找不到密钥文件
错误原因及解决方法
核心问题在于你误解了KeyFile参数的用法:该参数需要传入服务账号密钥文件的绝对路径,而非直接写入明文JSON密钥内容。
你当前把完整的JSON密钥对象直接填在KeyFile的值里,驱动会将这段JSON文本当作文件路径去尝试读取,显然不存在这样的文件,因此抛出"Unable to open keyfile"错误。
修复步骤
- 将你的服务账号密钥内容保存为一个独立的JSON文件,比如
bq-service-key.json,放在非Windows机器上的某个路径(例如/home/your-user/bq-keys/bq-service-key.json)。 - 修改连接字符串的
KeyFile参数,指向这个文件的绝对路径:
Driver=Simba Google BigQuery ODBC Connector; OAuthMechanism=0;Email=application-service-account@iam.gserviceaccount.com;KeyFile=/home/your-user/bq-keys/bq-service-key.json;Catalog=testdata;
- 给密钥文件设置合适的权限,确保运行ODBC客户端的用户能读取它(推荐用
chmod 600 /home/your-user/bq-keys/bq-service-key.json,限制仅文件所有者可读,避免密钥泄露)。
补充说明:部分文档提到的"密钥对象"通常是指在DSN配置文件中使用结构化格式,但在无DSN的连接字符串模式下,KeyFile只支持文件路径,不允许直接嵌入JSON内容。
内容的提问来源于stack exchange,提问作者tab
相关产品推荐
相关产品推荐

