AUTHORIZATION説明このコマンドはセッションのユーザ識別子、ならびに、現在のSQLセッションにおける現在のユーザ識別子をuser_nameに設定します。ユーザ名は、識別子、あるいは文字列リテラルとして記述することもできます。このコマンドを使用すると、例えば、一時的に非特権ユーザとなり、その後に特権ユーザに戻るといったことが可能です。セッションのユーザ識別子はクライアントから渡される(おそらく認証済みの)ユーザ名で初期化されます。DEFINER関数や類似の機能によって一時的に変更される可能性があります。ROLEでこれを変更することもできます。現在のユーザ識別子は権限の検査に影響を与えます。セッションのユーザ識別子は、最初のセッションユーザ(認証されたユーザ)がスーパーユーザ権限を持っている場合にのみ変更できます。スーパーユーザ権限を持っていない場合、認証されたユーザ名を指定した場合のみ、このコマンドは受け入れられます。SESSION修飾子およびLOCAL修飾子は、通常のSETコマンドの場合と同じように機能します。DEFAULT構文およびRESET構文は、セッションと現在のユーザ識別子を元の認証ユーザに戻します。これらの構文は全てのユーザが実行できます。DEFINER関数内で使用することはできません。標準SQLでは、user_nameリテラルの指定方法としてその他の表現を使用できます。この違いは実用上は重要ではありません。PostgreSQLでは識別子構文("username")を使用できますが、SQLでは使用できません。SQLではこのコマンドをトランザクション中に実行することができませんが、PostgreSQLでは、禁止する理由が見当たらないため、この制限を付けていません。SESSION修飾子およびLOCAL修飾子とRESET構文は、PostgreSQLの拡張です。標準SQLでは、このコマンドを実行するために必要な権限は、実装に依存するとされています。TRANSACTION。