2016-11-02 7 views
2

多くのユーザーがデータベースを共有していますが、すべてのユーザーはグループ "example"に属しており、データベースの大多数のオブジェクトは "example"によって所有されています。非常に時々ユーザーが新しいテーブルを作成します - そのテーブルは作成したユーザーに割り当てられ、他のユーザーは新しいテーブルを変更できません。Postgresテーブルの所有者を自動的に変更しますか?

自動的にグループ「例」ではなく、テーブルまたはCREATE TABALEまたは起こるトリガーを設定する方法を作成したユーザーに設定されたテーブルの所有権を持ってする方法はありますどのように実際にそれらを作成したかにかかわらず、すべてのユーザーがオブジェクトの所有者と見なされるようにグループ/権限を設定する方法?

+1

[イベントトリガー](https://www.postgresql.org/docs/current/static/event-triggers.html)を試してください – Abelisto

答えて

0

あなたはデフォルトの権限をこのように変更することができます:SCHEMA公共グラントに

ALTERのデフォルトの権限はPUBLIC TOテーブルに対してSELECT。

または書き込みアクセス与えるために:PUBLIC TO TABLES ON DELETE、SCHEMA公共GRANT SELECT、INSERT、UPDATE IN

ALTERのデフォルトの権限を、

https://www.postgresql.org/docs/9.0/static/sql-alterdefaultprivileges.html

+0

本当に必要なのは、「ALTER」特権です。所有者のみが利用できますあるユーザーが新しいユーザーを作成すると、共通のグループではなく所有者として割り当てられます。 –

0

あなたはおそらくこれが前方9.3からPgのすべてのバージョンでなんとかですが、イベントのトリガーの構造が大幅に向上しているので、ご使用のバージョンによっては異なるアプローチが必要になることがありますEVENT TRIGGER

を使用します。

以前のバージョンでは、現在のユーザーが所有するアイテムのテーブルカタログを調べることができました。新しいバージョンでは、必要な情報を得るためにpg_event_trigger_ddl_commandsを使用することができます。 ddl endでコマンドを実行したいとします。

関連する問題