2016-02-03 37 views

回答

3

在Redshift表和視圖中,不會自動繼承其父架構的權限。新創建的表只能由創建它們的用戶和超級用戶訪問。

在Redshift的最新補丁中,實施了一項新功能來授予默認權限,以解決此問題。

Alter Default Privileges

下面的代碼片段將只授予在銷售模式到sales_admin組的所有未來表選擇權限。如果您希望將其應用於架構中的現有表,則需要將其與第二個授權語句結合使用。

alter default privileges in schema sales grant select on tables to group sales_admin; 
+0

看起來像「改變默認權限」只適用於超級用戶創建有問題的對象;當具有創建權限的普通用戶創建對象時,不會添加默認權限。任何人看到這個? –

+0

同樣的事情發生在我身上@JesseMacNett – unpairestgood

+1

@JesseMacNett,這個文檔並沒有很好的描述它是如何工作的,但是你必須在語句中添加'FOR USER user'子句,如果你不這樣做假定當前用戶。所以如果你有一個用戶X創建一個表,並且你運行'ALTER DEFAULT PRIVILEGES ...',它假設你的意思是'ALTER DEFAULT PRIVILEGES FOR USER_user ...',而不是'ALTER DEFAULT PRIVILEGES FOR USER USER_X ... ',所以只有'current_user'創建的新表將會改變它們的默認權限。 –

-1

當我們第一次發現在我們的報表工具,沒有出現新的表,我發現了一個快速的解決方法是重新執行該組/用戶下面的SQL語句的影響:

ALTER DEFAULT PRIVILEGES IN SCHEMA <SCHEMANAME> GRANT SELECT ON TABLES TO GROUP <USER/GROUPNAME>; 
+1

這不提供問題的答案。一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你將能夠[評論任何職位](http://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/15294962) – Micho

+0

奇怪的是,我現在無法重現這一點,但如果我發現任何新內容,將會保持線程發佈! – Skippy

+0

@Micho - 我以前無法評論,但現在我可以,是我唯一的選擇,哇,給一個新的gal休息! – Skippy

0

執行的下面的命令以超級用戶(主):

alter default privileges 
    for user staging_user 
    in schema staging 
    grant select on tables 
    to reporting_user; 

將允許reporting_user從由staging_user在架構分期創建的所有將來的表選擇數據。

相關問題