Permissions

在 Redshift 中的所有表上授予 SELECT

  • December 23, 2019

我正在嘗試為SELECTRedshift 中的組分配權限。所以我在該組中創建了一個組和一個使用者:

CREATE GROUP data_viewers;
CREATE USER <user> PASSWORD '<password>' IN GROUP data_viewers;

現在我想讓這個組能夠從任何表中讀取數據:

GRANT SELECT ON ALL TABLES IN SCHEMA PUBLIC TO GROUP data_viewers;

命令返回GRANT。現在,當我以新創建的使用者身份連接到 Redshift 並發出問題時,SELECT * FROM something.something;我得到:

架構某些東西的權限被拒絕

我嘗試授予某些東西的權限:GRANT SELECT ON ALL TABLES IN SCHEMA something TO GROUP data_viewers;但這並沒有改變任何東西。


如何允許我的組中的使用者從SELECT架構中的任何表中獲取數據?

您還需要USAGE(至少)架構的特權:

GRANT USAGE ON SCHEMA something TO GROUP data_viewers;

相關的 Postgres 範例:

請記住,您只授予對現有表的權限。不適用於以後創建的表。為了涵蓋這些,也:

ALTER DEFAULT PRIVILEGES FOR USER role_that_creates_tables
IN SCHEMA public
GRANT SELECT ON TABLES TO GROUP data_viewers;

Amazon Redshift 也實施DEFAULT PRIVILEGES了。

這是 Postgres 的完整食譜:

請注意主線 Postgres 和 Redshift 之間的**一些差異!**Redshift 堅持將使用者分開,而 Postgres 用通用的角色概念取代了它:

而且我不確定 Redshift 如何處理序列…

引用自:https://dba.stackexchange.com/questions/135720