2016-12-26 9 views
1

私はpostviewsでtestviewというビューを持っています。postgresqlのビューへのアクセスを許可する

私はtestuserという新しいユーザーを作成しました。

私は、testuserがデータベース内のすべてのテーブルとビューに対してすべての権限を持つことを望みます。

GRANT ALL PRIVILEGES ON DATABASE testdb TO testuser; 

GRANT USAGE ON SCHEMA public TO testuser; 

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO testuser; 

testuserをこれで、データベース内のすべてのテーブルへのアクセス権を持っていますが、私はTestViewにSELECT * FROMを実行しようとする場合、私は次のエラーを取得する:許可が拒否されました私は、次のコマンドを実行したこれを行うには

関係のテストビュー。

どうしたのですか? testuserはどのようにしてtestviewにアクセスできますか?

答えて

2

私はそれがうまくいくはずです。権限GRANT ... ON ALL TABLESにはビューも含める必要があります。

ビューの後に、の権限を付与した後、testuserに権限を付与しましたか?そうであれば、他のテーブルと同じ特権を持ちません。 GRANT ... ON ALL TABLESは、「現在存在するすべてのテーブル上」を意味するためです。あなたが将来的に作成したテーブル/ビューを含めるには、あなたが言うことができます。

ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO testuser; 

それとも、SELECT以上のものを提供したい場合は、あなたの代わりにALL PRIVILEGESを言うことができます。

関連する問題