19

現在、アプリケーションに PostgreSQL を使用しています。トランザクション (つまり、挿入、更新、削除) を含むすべての SQL を関数に入れようとしているので、次の問題に遭遇しました。

データベース ユーザーが関数と Select-Statement の呼び出しのみを許可され、トランザクションを含む SQL-Statement を呼び出すことはできないということは可能ですか? 「関数を呼び出す」とは、任意の関数を意味します。トランザクションが含まれているかどうかに関係なく。

関数と Select-Statement のみを呼び出すことができるユーザーを作成しようとしました。しかし、トランザクションを含む関数を呼び出すと、常にエラーになります。私が理解していることについては、挿入、更新、または削除ステートメントを使用する関数を呼び出す場合、dbuser には書き込み権限が必要です。

何か不足していますか?このシナリオは本当に不可能ですか?そもそもSQLインジェクションをほとんど防ぐことができるので、セキュリティ的にはこれは本当に素晴らしいことです。

4

1 に答える 1