【问题标题】:Redshift : New table but Group members can't queryRedshift:新表但组成员无法查询
【发布时间】:2020-05-19 18:43:23
【问题描述】:

在 Redshift 中,我有一个像这样定义的 data_reader db 组

CREATE GROUP data_reader;
GRANT USAGE ON SCHEMA reports TO GROUP data_reader;
GRANT SELECT ON ALL TABLES IN SCHEMA reports TO GROUP data_reader;

而且我注意到,每当我创建新表时,组成员都无法自动从表中查询。他们收到Permission Denied 错误。重新运行

GRANT SELECT ON ALL TABLES IN SCHEMA reports TO GROUP data_reader;

修复权限。

这只是 Redshift 的一个怪癖,还是我应该以其他方式定义我的数据库组?

【问题讨论】:

    标签: postgresql security permissions amazon-redshift grant


    【解决方案1】:

    您提供的任何 GRANTS 仅适用于现有的表/视图。每当创建新表时,您都需要显式地为用户/组提供所需的权限。我的建议是可能在 DDL 文件中包含适当的授权语句。

    【讨论】:

      【解决方案2】:

      此语句仅授予对已创建表的访问权限:

      GRANT SELECT ON ALL TABLES IN SCHEMA reports TO GROUP data_reader;
      

      为了默认授予访问权限,您必须设置默认权限:

      GRANT USAGE ON SCHEMA reports TO group data_reader; --Most probably already granted
      ALTER DEFAULT PRIVILEGES IN SCHEMA reports GRANT SELECT ON TABLES to group data_reader;
      

      现在所有新创建的表都将被授予分组以供选择。

      【讨论】:

        猜你喜欢
        • 2015-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多