2

PostgreSQL サーバー (V9.2) に n 個のスキーマと n 個のユーザー (スキーマごとに 1 ユーザー) があります。各テーブルでto 、 for to 、SELECT, INSERT, UPDATE, DELETE, EXECUTEfor toの権限を割り当てたいだけです。user1schema1user2schema2usernscheman

このステートメントではこれを行うことはできません:

GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON SCHEMA schema 1 to user1

この句はand特権...ON SCHEMAでのみ機能するためです。CREATEUSAGE

では、関係するユーザーに各テーブルのすべての権限を割り当てる最速の方法は何ですか? ...GRANTごとに 1 つのステートメントを実行しないことが唯一の方法であることを願っています。schema.table

4

2 に答える 2

3

「スキーマ内のすべてのテーブルで」オプションを探していると思います:

GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON ALL TABLES IN SCHEMA schema_1 to user1;

詳細については、マニュアルを参照してください: http://www.postgresql.org/docs/current/static/sql-grant.html

于 2013-02-08T14:31:27.047 に答える
0

この問題にはさまざまな解決策がありますが (許可テーブルを手動で変更することを含む)、ツールを使用して簡単にすることを個人的にお勧めします。

たとえば、pgAdmin3 を使用すると、スキーマ内のすべてのオブジェクトの権限をバッチで簡単に変更できます。

http://www.pgadmin.org/docs/1.4/grantwiz.html

于 2013-02-08T14:26:42.843 に答える