Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Avance rapide | Suivant |
SET [ SESSION | LOCAL ] SESSION AUTHORIZATION utilisateur SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT RESET SESSION AUTHORIZATION
Cette commande initialise l'identifiant de l'utilisateur de la session et l'identifiant de l'utilisateur courant pour la session SQL comme étant utilisateur. Le nom de l'utilisateur pourrait être soit un identifiant soit 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 un superutilisateur.
L'identifiant de l'utilisateur de la session est initialement configuré pour être le nom utilisateur fourni par le client (que s'est éventuellement authentifié). L'identifiant de l'utilisateur courant est normalement identique à l'identifiant de l'utilisateur de la session mais cela pourrait changer temporairement dans le contexte des fonctions SECURITY DEFINER et des mécanismes similaires. L'identifiant de l'utilisateur courant est important pour la vérification des droits.
L'identifiant de l'utilisateur de la session pourrait être ne peut être modifié que si l'utilisateur initial de la session (l'utilisateur authentifié) a le droit de superutilisateur. Sinon, la commande est acceptée seulement si le nom de l'utilisateur authentifié est spécifié.
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 identifiant de l'utilisateur de la session et de l'utilisateur courant à ceux de l'utilisateur originellement authentifié. Ces formes peuvent être exécutées par tout utilisateur.
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 du littéral utilisateur qui ne sont pas importantes en pratique. PostgreSQL autorise la syntaxe de l'identifiant ("utilisateur") alors que SQL ne le permet pas. SQL n'autorise pas cette commande lors d'une transaction ; PostgreSQL ne fait pas cette restriction parce qu'il n'y a aucune raison de le faire. Les droits nécessaires pour exécuter cette commande sont laissés à la définition de l'implémentation par le standard.
Précédent | Sommaire | Suivant |
SET CONSTRAINTS | Niveau supérieur | SET TRANSACTION |