【发布时间】:2021-03-07 02:52:11
【问题描述】:
我在 Redshift Spectrum 上的外部表上创建了一个简单视图:
CREATE VIEW test_view AS (
SELECT *
FROM my_external_schema.my_table
WHERE my_field='x'
) WITH NO SCHEMA BINDING;
阅读documentation,我发现除非我授予对底层架构和表的访问权限,否则无法授予对视图的访问权限。因此,如果我执行以下语句:
GRANT SELECT ON test_view to my_user;
我尝试在视图中查看数据,正如预期的那样,我得到了错误:
模式 my_external_schema 的权限被拒绝
要解决这个问题,我可以做 GRANT USAGE ON SCHEMA my_external_schema TO my_user 但这会在该架构内的所有表上提供 SELECT,这是我试图避免的。
有没有办法避免这种情况?
对于普通的 Redshift 表,在架构上的授权使用已经足够好了,因为权限不会在基础表上授权选择,是否有与 Spectrum 类似的东西?
我无法使用物化视图,因为数据集太大。
【问题讨论】:
标签: amazon-web-services amazon-redshift aws-glue-data-catalog amazon-redshift-spectrum