SET SESSION AUTHORIZATION — Initialise l'identifiant de session de l'utilisateur et l'identifiant de l'utilisateur actuel de la session en cours
SET [ SESSION | LOCAL ] SESSION AUTHORIZATION nom_utilisateur
SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
RESET SESSION AUTHORIZATION
  
   Cette commande positionne l'identifiant de session de l'utilisateur et
   celui de l'utilisateur courant pour la session SQL en cours à nom_utilisateur.
   Le nom de l'utilisateur peut être un identifiant ou une chaîne
   littérale. En utilisant cette commande, il est possible, par exemple, de
   devenir temporairement un utilisateur non privilégié et de redevenir plus
   tard superutilisateur.
  
   L'identifiant de session de l'utilisateur est initialement positionné
   au nom de l'utilisateur (éventuellement authentifié) fourni par le client.
   L'identifiant de l'utilisateur courant est habituellement
   identique à l'identifiant de session de l'utilisateur mais il peut être
   temporairement modifié par le contexte de fonctions
   SECURITY DEFINER
   ou de mécanismes similaires ; il peut aussi être changé par
   SET ROLE. L'identifiant de
   l'utilisateur courant est essentiel à la vérification des permissions.
  
L'identifiant de session de l'utilisateur ne peut être changé que si l'utilisateur de session initial (l'utilisateur authentifié) dispose des privilèges superutilisateur. Dans le cas contraire, la commande n'est acceptée que si elle fournit le nom de l'utilisateur authentifié.
   Les modificateurs SESSION et LOCAL agissent de la même
   façon que la commande standard SET.
  
   Les formes DEFAULT et RESET réinitialisent les
   identifiants courant et de session de l'utilisateur
   à ceux de l'utilisateur originellement authentifié.
   Tout utilisateur peut les exécuter.
  
   SET SESSION AUTHORIZATION ne peut pas être utilisé dans
   une fonction SECURITY DEFINER.
  
SELECT SESSION_USER, CURRENT_USER; session_user | current_user --------------+-------------- peter | peter SET SESSION AUTHORIZATION 'paul'; SELECT SESSION_USER, CURRENT_USER; session_user | current_user --------------+-------------- paul | paul
   Le standard SQL autorise l'apparition de quelques autres expressions à la
   place de nom_utilisateur. Dans la pratique, ces
   expressions ne sont pas importantes. PostgreSQL
   autorise la syntaxe de l'identifiant
   (") alors que
   SQL ne le permet pas. SQL n'autorise pas l'exécution de cette commande au
   cours d'une transaction ; PostgreSQL
   n'impose pas cette restriction parce qu'il n'y a pas lieu de le faire. Les
   modificateurs nom_utilisateur"SESSION et LOCAL sont
   des extensions PostgreSQL tout comme la syntaxe
   RESET.
  
Le standard laisse la définition des droits nécessaires à l'exécution de cette commande à l'implantation.