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

使用Python通过Redshift查询AWS Data Exchange数据共享遇权限错误

问题原因及解决办法

1. 数据共享表的访问路径错误

AWS Data Exchange的数据共享表必须通过完整的三方标识符访问,格式为{生产者账号ID}.{生产者数据库名}.{Schema名}.{表名}。如果直接写store,Redshift会尝试在本地默认Schema中查找,可能触发隐含的对象创建检查(被判定为写入操作),导致权限错误。

解决:替换为完整路径的查询,示例:

SELECT * FROM 123456789012.shared_db.public.store s LIMIT 10;

(请替换为实际的生产者账号ID、数据库名和Schema名)

2. 连接器事务模式触发误判

psycopg、redshift_connector默认会开启事务,部分会话级操作(如设置客户端参数)可能被Redshift误判为写入操作。

解决:显式开启自动提交:

  • psycopg:
connection = psycopg.connect(..., autocommit=True)
  • redshift_connector:
connection = redshift_connector.connect(...)
connection.autocommit = True

3. 数据共享未关联到本地集群

订阅数据共享后,需在Redshift集群中执行关联操作,将共享映射到本地数据库:

ALTER DATABASE 你的本地数据库名 ADD DATASHARE 数据共享名 FROM ACCOUNT 生产者账号ID;

未完成此步骤会导致Redshift无法识别共享对象,触发权限错误。

4. 用户/角色缺少SELECT权限

确认连接Redshift的用户或角色拥有数据共享的SELECT权限:

GRANT SELECT ON DATASHARE 数据共享名 TO ROLE 你的角色名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:52:43