2013-09-24 74 views
0

繼承角色權限我已經做了這個指令集:撤消由從對象的所有者

CREATE ROLE master 
     SUPERUSER CREATEDB CREATEROLE 
     VALID UNTIL 'infinity'; 

SET role = master; 

CREATE TABLE test 
(
    name text 

) 
WITH (
    OIDS=FALSE 
); 

ALTER TABLE test 
    OWNER TO master; 

CREATE ROLE inherited LOGIN 
    NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; 
GRANT master TO inherited; 


set role=master; 
REVOKE select on test from inherited cascade; 

任何人都可以告訴我,爲什麼我仍然可以做選擇上表測試? 這一個仍然有效:

set role=inherited; 
select * from test; 

角色繼承繼承對象的所有者後 - 所以這可能是一個問題。但是有沒有辦法撤銷選擇呢?

回答

0

您可以這樣做,因爲所有者被假定爲具有表的完整權限。

您還必須撤銷對擁有角色的訪問權限。