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;

テーブルテストでまだ SELECT を実行できる理由を誰か教えてください。これはまだ機能します:

set role=inherited;
select * from test;

継承された役割は、オブジェクトの所有者の後に継承されます。これはおそらく問題です。しかし、とにかく選択を取り消す方法はありますか?

4

1 に答える 1

0

所有者はテーブルに対する完全な権限を持っていると想定されているため、これを行うことができます。

また、所有ロールへのアクセスを取り消す必要があります。

于 2013-11-18T07:44:31.470 に答える