メインコンテンツへスキップ
プロトコル・技術

SECURITY INVOKER

SECURITY INVOKER

PostgreSQLの関数を呼び出した利用者の権限で実行する指定。関数の所有者が強い権限を持っていても、その権限を呼び出し元へ自動的に貸すものではない。

関数を実行できることと、関数内で参照する表を操作できることを分けて考えます。利用者ごとの許可を維持しやすい反面、業務ロールに必要な権限があるか検証が必要です。権限不足のエラーを単に所有者権限での実行へ変更して解消しないようにします。

  • 初心者向けには「呼び出した人の持ち札の範囲で動く関数」
  • SECURITY DEFINERとの違いは実行時の権限主体
  • 一般利用者のロールで動作確認する

よくある質問

SECURITY INVOKERとは?

PostgreSQLの関数を呼び出した利用者の権限で実行する指定。関数の所有者が強い権限を持っていても、その権限を呼び出し元へ自動的に貸すものではない。

SECURITY INVOKERについて詳しく知るには?

関数を実行できることと、関数内で参照する表を操作できることを分けて考えます。利用者ごとの許可を維持しやすい反面、業務ロールに必要な権限があるか検証が必要です。権限不足のエラーを単に所有者権限での実行へ変更して解消しないようにします。

SECURITY INVOKERのポイントは?

初心者向けには「呼び出した人の持ち札の範囲で動く関数」 SECURITY DEFINERとの違いは実行時の権限主体 一般利用者のロールで動作確認する

← 用語集一覧に戻る
ESC