このコマンドはセッションのユーザ識別子、並びに、現在のSQLセッションコンテキストにおける現在のユーザ識別子を username に設定します。
セッションのユーザ識別子はクライアントから渡された(おそらくは認証された)ユーザ名で初期化されます。現在のユーザ識別子は通常セッションのユーザ識別子と同一ですが、"setuid"関数や似たような機構によって一時的に変更することができます。現在のユーザ識別子は権限の検査に関係します。
このコマンドは、最初のセッションのユーザ(認証済ユーザ)がスーパユーザ権限を持っている場合にのみ実行可能です。接続の間、元の権限は維持されます。例えば、一時的に非特権ユーザとなり、その後に特権ユーザに戻ることが可能です。
SELECT SESSION_USER, CURRENT_USER; current_user | session_user --------------+-------------- peter | peter SET SESSION AUTHORIZATION 'paul'; SELECT SESSION_USER, CURRENT_USER; current_user | session_user --------------+-------------- paul | paul