2016-07-26 9 views
0

私のシナリオでは、ユーザーはデータベースの所有者であり、その中にあるものはすべて彼に完全にアクセス可能でなければなりません/彼女。しかし私は、ユーザーが自分のデータベースの外にあるものにアクセスすることを望んでいません。データベースへのアクセス権を付与する方法と、そのオブジェクトの内容は将来追加されます

私が言及したように、データベースの構造は時間の経過とともに変更され、私は追加された各テーブル/スキーマ/機能のパーミッションをリセットしたくはない。

どのように私はPostgreSQLでそのような許可を与えることができますか?

+3

あなたは 'ALTER DEFAULT PRIVILEGES'を探していますhttps://www.postgresql.org/docs/current/static/sql-alterdefaultprivileges.html –

+0

@a_horse_with_no_name答えとして投稿できますか?可能であれば、既存のデータベースにすべての権限を付与する方法を教えてください。最後のオブジェクトまで(深い権限!?)。ありがとう。 – Mehran

答えて

0

私はあなたの最善の答えは、実際には、デフォルトでは、所有者は常に任意のデータベースオブジェクトに対して権限を付与/取り消すことができると思います。したがって、すべてのテーブルがデータベース所有者によって所有されている場合、デフォルトではこれらのすべてのテーブルにアクセスできますが、他のテーブルはアクセスできません。所有者は権限も割り当てることができます。したがって、そのユーザーがすべてのテーブルを作成していることを確認しても問題はありません。他のテーブルの場合は、後でALTER TABLEを使用してオーナーを変更することができます。

いずれにしても、行間を読み、それはあなたが求めているようです。 ALTER DEFAULT PRIVILEGESも機能しますが、与えようとしている役割は、与えられたテーブルの所有者によってロックアウトされる可能性があります。

関連する問題