SET SESSION AUTHORIZATION

Name

SET SESSION AUTHORIZATION -- Met en place l'identifiant d'utilisateur de session et l'identifiant d'utilisateur courant de la session en cours.

Synopsis

SET SESSION AUTHORIZATION 'username'

Description

Cette commande place l'identifiant utilisateur de session et l'identifiant utilisateur courant de la session SQL en cours.

L'identifiant d'utilisateur de session est initialement placé comme (possiblement identifié) nom d'utilisateur fourni par le client. L'identifiant d'utilisateur courant est normalement égal à l'identifiant d'utilisateur de session, mais peut changer temporairement dans un contexte de fonctions "setuid" et mécanismes similaires. L'identifiant d'utilisateur courant est en rapport avec la vérification des droits.

L'exécution de cette commande n'est autorisée que si l'utilisateur de session initiale (L'utilisateur identifié) a les droits du superutilisateur. Ces droits sont conservés pour la durée de la connexion; par exemple, il est possible de devenir temporairement un utilisateur non privilégié et plus tard redevenir superutilisateur.

Exemples

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

Compatibilité

SQL99

SQL99 permet à d'autres expressions d'apparaître à la place du username lesquelles ne sont pas importantes en pratique. PostgreSQL permet la syntaxe d'identifiant ("username"), pas le SQL. SQL ne permet pas cette commande pendant une transaction; PostgreSQL n'applique pas cette restriction car il n'y a pas de raison. Les droits nécessaires pour exécuter cette commande sont laissés à l'implémentation définie par le standard.