我已完成这套说明:
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;
任何人都可以告诉我为什么我还可以在桌面测试中做SELECT? 这个仍然有效:
set role=inherited;
select * from test;
继承的角色继承在对象的所有者之后 - 这可能是一个问题。但是有没有办法撤销选择呢?
答案 0 :(得分:0)
您可以这样做,因为假定所有者拥有该表的完全权限。
您还必须取消对拥有角色的访问权限。