2016-07-15 6 views
0

重複がある場合は申し訳ありません...私はそれを探しましたが見つかりませんでした。Postgres:データベース・オブジェクトを作成するユーザー・アカウント/ロールの機能を制限する

テーブルの標準CRUD権限、機能の実行権限などを持つには、自分のユーザーアカウント(ロール)が必要です。

しかし、このロールでオブジェクトの作成や削除を禁止する必要があります。表の作成/作成機能(または表の削除または変更)は禁止する必要があります。

これを実行する方法は、ドキュメントから明らかではないようです。助けや洞察力を事前に感謝します。

答えて

0

重要なドキュメントの部分は、PUBLIC疑似ロール(すべてのユーザーを含む)と、デフォルトで作成されるpublicスキーマです。

公共スキーマの目的は、新規ユーザーはあまり手間をかけずにオブジェクトを作成できるようにすることですが、それは望ましくない場合は、あなたが発行することにより、対応する権限を削除することがあります。

REVOKE ALL on schema public FROM public; 

ALLこのコンテキストにありますCREATE, USAGEのショートカットです。接続されているデータベースでのみ発生することに注意してください。

もう1つの方法は、publicスキーマを削除して、アプリケーションオブジェクトの事前定義済みのアクセス許可なしで別のスキーマを作成することです。

関数の実行権限は、GRANT EXECUTEによって個別に処理されます。

テーブルを削除する権限は、そのテーブルを含むスキーマからは得られません。テーブルまたはスーパーユーザーの所有者のみが削除できます。

https://www.postgresql.org/docs/current/static/sql-grant.htmlおよび
https://www.postgresql.org/docs/current/static/ddl-schemas.htmlを参照してください。

+0

ありがとう、ダニエル。これはまさに私が必要としたヒントでした。 – JimP

+0

この回答を受け入れるために必要なことはありませんか?答えられた質問を考えてみましょう。 – JimP

関連する問題