gpt4 book ai didi

amazon-web-services - 仅授予在 Redshift Spectrum 中查看的权限

转载 作者:行者123 更新时间:2023-12-04 17:23:08 27 4
gpt4 key购买 nike

我在 Redshift Spectrum 上创建了一个外部表的简单 View :

CREATE VIEW test_view AS (
SELECT *
FROM my_external_schema.my_table
WHERE my_field='x'
) WITH NO SCHEMA BINDING;

阅读documentation ,我看到除非我授予对底层模式和表的访问权限,否则不可能授予对 View 的访问权限。因此,如果我执行以下语句:

GRANT SELECT ON test_view to my_user;

然后我尝试在 View 中查看数据,正如预期的那样,我得到了错误:

Permission Denied on schema my_external_schema

要解决此问题,我可以执行 GRANT USAGE ON SCHEMA my_external_schema TO my_user 但这将在该架构内的所有表上提供 SELECT,这是我试图避免的。

是否有解决方法可以避免这种情况?

对于普通的 Redshift 表,在模式上授予使用就足够了,因为权限不授予对基础表的选择,是否有与 Spectrum 类似的东西?

我无法使用物化 View ,因为数据集太大了。

最佳答案

Spectrum(外部表)权限有点棘手。

您只能在架构级别为外部表执行 Grant 和 Revoke 使用。

对于使用 ON SCHEMA 语法的数据库用户和用户组,您只能GRANTREVOKE 对外部架构的USAGE 权限。

如果要在外部表之上创建 View ,则需要授予对外部模式的使用权限。无需设置 SELECT ON EXTERNAL TABLE 也是不可能的。

ERROR:  Operation not supported on external tables

在您的情况下,您只需授予该用户对外部架构的使用权限。

GRANT usage on my_external_schema to my_user;

然后授予 View 权限。

GRANT Select on test_view to my_user;

关于amazon-web-services - 仅授予在 Redshift Spectrum 中查看的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64984534/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com