红移:新表,但组成员无法查询



在Redshift中,我有一个data_reader数据库组,定义如下

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 的一个怪癖,还是我应该通过另一种方式定义我的数据库组?

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

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;

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

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

相关内容

  • 没有找到相关文章

最新更新