2012-08-23 111 views
1

我正在嘗試設置一個新角色,以使授予訪問權更加容易。我想知道是否有一種更簡單的方法可以在選定用戶的架構下爲所有表提供選擇(新創建的表應該可以自動訪問)。我跑了以下查詢相同。但是我的用戶仍然無法訪問特定的表格。Vertica角色授予不起作用

CREATE ROLE myrole; 

GRANT SELECT ON myschema.mytable TO myrole; 

GRANT usage ON schema myschema TO myrole; 

CREATE USER mytest1 identified BY '***'; 

GRANT myrole TO mytest1; 

在此之後,當我登錄與用戶mytest1並試圖運行選擇上myschema.mytable它要求我對模式授予的使用用戶。將模式的用法直接授予用戶後,它將因該表的權限被拒絕而失敗。

請幫助一致。我在Vertica的5.0

運行更新: 我發現,美也不得不做出這樣的角色默認或明確地設置該角色爲默認的用戶會話方面的作用的效果發生。

ALTER USER mytest1 DEFAULT ROLE myrole; 

但仍然,我的另一個問題是如何使特定用戶可訪問的架構下的所有表仍然存在。

回答

1

按了Vertica的SQL參考手冊.pdf(頁725)(DOC 5.0版 - 爲頁碼)

GRANT (Schema) 
... 
USAGE 
Allows the user access to the objects contained within the 
schema. This allows the user to look up objects within the 
schema. Note that the user must also be granted access to the 
individual objects. See the GRANT TABLE (page 727) ... . 

the user must also be granted access to the individual objects意味着你還需要GRANT table

我使用的兩個是GRANT SELECTGRANT REFERENCES,它允許用戶在查詢中運行查詢和連接(引用)表。

實施例:

GRANT SELECT ON TABLE [schema].[Table1] TO myUser; 
GRANT SELECT ON TABLE [schema].[Table2] TO myUser; 
GRANT REFERENCES ON TABLE [schema].[Table1] TO myUser; 
GRANT REFERENCES ON TABLE [schema].[Table2] TO myUser; 
... 

6.0 DOC參考GRANT SCHEMA(頁808)和GRANT TABLE(頁813)。

相關問題