2016-10-23 19 views
2

Postgresのofficial docsは、というユーザーの特権で実行され、セキュリティデフィナーで定義された機能が実行されていることを示しています。例えばherehereとしてSECURITY DEFINER - 関数の作成者または所有者の権限?

しかしながら、他の供給源は、それが機能の所有者の特権であると主張しています。

どちらが正しいですか?

+0

機能を作成するユーザーは、 –

+0

@a_horse_with_no_name(手動所有者を変更しない限り)しかし、それは私が新しい関数を作成するときに、私は非常に高い権限でログインしています、一般的に...全体のポイントの所有者であります。私は、これらの機能を実行するユーザーに限定された(時にはSELECTのみの)権限を与えたいと思っています。 – ExactaBox

+0

次に、セキュリティ定義者を除外します(これは、セキュリティ定義者の要点です。権限のないユーザーに特権のあるものへのアクセスを許可します)。 –

答えて

4

(9.4+用)通常(最初は)作成者が所有者です。ただし、機能の所有者が変更された場合は、security definerが新しい所有者に適用されます。 Per the documentation

new_owner - 関数の新しい所有者。この機能にSECURITY DEFINERとマークされている場合は、その後、新しい所有者として実行されます。

関連する問題