访问Redshift外部表所需的最低权限

问题描述 投票:0回答:1

根据AWS文档,

要运行Redshift Spectrum查询,您需要以下权限:

  • 对模式的使用权限

  • 在当前数据库中创建临时表的权限

我有一个外部数据库,模式和在该模式中创建的表。我创建了一个新的Redshift用户,并向其授予了外部模式的“使用”特权:

grant usage on external_schema to new_user;

但是我没有为我的new_user提供external_database的'temp'特权。

而且,没有默认权限,因为我使用主用户检查了PG_DEFAULT_ACL,并且其中没有行。

有人可以让我知道为什么我可以查询外部表吗?

amazon-redshift grant amazon-redshift-spectrum
1个回答
0
投票

在Amazon Redshift中,数据库和架构是不同的概念。用户对象(Redshift和外部对象)是在Schema中创建的,而TEMP对象是在“ temp”模式中创建的,并且可以在数据库级别使用。

[在某些情况下,在Spectrum表和Redshift表之间应用了联接的情况下,Redshift需要创建临时表,这就是为什么在文档中提到它以避免用户出现任何故障/错误的原因。

documentation说的是:

授予在指定数据库中创建临时表的特权。要运行Amazon Redshift Spectrum查询,数据库用户必须具有在数据库中创建临时表的权限。

注意默认情况下,通过自动加入PUBLIC组来授予用户创建临时表的权限。若要删除任何用户创建临时表的特权,请从PUBLIC组中取消TEMP许可。然后显式授予特定用户或用户组创建临时表的权限。

© www.soinside.com 2019 - 2024. All rights reserved.