[pgsql-jp: 41099] Re: postgresユーザーのREVOKEについて
YAMAMURA Shingo
ymrsong @ gmail.com
2012年 4月 26日 (木) 14:16:46 JST
山村です。
早速の回答ありがとうございます。
> 権限の剥奪は、権限を与えたユーザにしかできません。なので、SET ROLEで権限を与えたユーザに成り代わってREVOKEしてください。
>
> SET ROLE dbaccount_operator;
> REVOKE SELECT ON ALL TABLES IN SCHEMA scm FROM zzz_test_user;
> RESET ROLE;
なるほど、権限の剥奪はたとえスーパーユーザーでもできないんですね。
SET ROLE は、こういう風に使うんですね。
大変勉強になりました。
ありがとうございます。
2012年4月26日13:17 Hiroki Kataoka <kataoka @ interwiz.jp>:
> 片岡です。
>
> 権限の剥奪は、権限を与えたユーザにしかできません。なので、SET ROLEで権限を与えたユーザに成り代わってREVOKEしてください。
>
> SET ROLE dbaccount_operator;
> REVOKE SELECT ON ALL TABLES IN SCHEMA scm FROM zzz_test_user;
> RESET ROLE;
>
> 2012年4月26日12:28 YAMAMURA Shingo <ymrsong @ gmail.com>:
>> はじめまして。山村と申します。
>> postgresユーザーのREVOKEの使い方について質問させてください。
>>
>> スーパーユーザーのpostgresが、ほかのアカウントで作成した別ユーザーのテーブルアクセス権限を
>> 取り上げたいのですが、そのような事はできますでしょうか?
>>
>>
>> http://www.postgresql.jp/document/9.1/html/sql-revoke.htmlには「スーパーユーザがGRANTや
>> REVOKEコマンドを発行した場合、そのコマンドは、対象のオブジェクトの所有者によって発行され
>> たものであるかのように動作します。・・・・ただし、この場合は上述のCASCADEを使用する必要が
>> あります。」とあったので、できると仮定して以下の手順を試してみましたがダメでした。
>>
>> 確認してみた手順(各ステップはpgAdmin1.14.2で接続しなおして実行しています。Postgresは9.1.3):
>>
>> 1. postgresアカウントで実行
>> CREATE SCHEMA scm;
>> CREATE TABLE scm.tblA(v integer);
>>
>> -- dbaccount_operator 追加
>> CREATE ROLE dbaccount_operator WITH PASSWORD 'abc' CREATEROLE LOGIN;
>> GRANT USAGE ON SCHEMA scm TO dbaccount_operator WITH GRANT OPTION;
>> GRANT SELECT ON ALL TABLES IN SCHEMA scm TO dbaccount_operator
>> WITH GRANT OPTION;
>>
>> 2. dbaccount_operatorアカウントで実行
>> -- zzz_test_user 追加
>> CREATE ROLE zzz_test_user WITH PASSWORD '123' LOGIN;
>> GRANT USAGE ON SCHEMA scm TO zzz_test_user;
>> GRANT SELECT ON ALL TABLES IN SCHEMA scm TO zzz_test_user;
>>
>> 3. postgresアカウントで実行
>> -- zzz_test_user からscmにある全テーブルからSELECT権限を取り上げ。
>> REVOKE SELECT ON ALL TABLES IN SCHEMA scm FROM zzz_test_user CASCADE;
>>
>> 3番目の手順で"クエリーは、21 ミリ秒で結果なしでうまく帰りました。"とでるのですが、\dpコマンド確認して
>> みると取り上げられていませんでした。
>> 念のため、dbaccount_operator アカウントで3)を実行すれば取り上げることはできたことは確認しました。
>>
>> ご教授お願い致します。
>>
>
>
>
> --
> Hiroki Kataoka
pgsql-jp メーリングリストの案内