3

私たちのデータベースには、列とloginを特徴とするテーブルがあります。このユーザー名をトリガー関数内で取得して、監査もできるようにするにはどうすればよいですか。トリガー関数内のキーワードはpostgresqlユーザー名を取得します。必要なのはアプリケーションユーザー名です。助言がありますか?usernamepassworduser

4

1 に答える 1

3

でカスタムGUCを設定できますpostgresql.conf。を使用してログイン時にアプリケーションのユーザー名を保存するために使用しますSET myapp_username。トリガーでそれにアクセスしますcurrent_setting(myapp_username)

TEMPORARYまたは、ユーザーログイン時にテーブルを作成し、ログイン時INSERTにユーザーのアプリケーションユーザー名をテーブルに作成します。SELECT必要に応じてトリガーに入れます。

もちろん、これらは両方とも、ユーザーがカスタムSQLを直接実行できないことを要求しますが、それは一般的に、とにかく使用しているようなアプリケーションレベルの認証の要件です。

PostgreSQLトリガーへのユーザーIDの受け渡しの詳細

于 2012-10-25T12:06:31.560 に答える