FirebirdSQL logo

SET ROLE

Destination

Changer le rôle actuel.

Disponible en

DSQL.

Syntaxe
SET ROLE rolename
Table 1. Paramètres de l’opérateur SET ROLE.
Paramètre Description

rolename

Le nom du rôle à installer.

Selon la norme SQL-2008, l’instruction SET ROLE permet de définir la variable de contexte CURRENT_ROLE sur l’un des rôles assignés à l’utilisateur CURRENT_USER ou sur le rôle obtenu par authentification de confiance (dans ce cas, l’instruction prend la forme SET TRUSTED ROLE).

Example 1. Changer le rôle actuel
SET ROLE manager;
SELECT current_role FROM rdb$database;
ROLE
=======================
MANAGER

SET TRUSTED ROLE

Destination

Définir un rôle de confiance.

Disponible en

DSQL

Syntaxe
SET TRUSTED ROLE

L’instruction SET TRUSTED ROLE permet l’accès à un rôle de confiance, à condition que le CURRENT_USER soit obtenu par une authentification de confiance et que le rôle soit disponible.

L’idée derrière la commande distincte SET TRUSTED ROLE est que lors de la connexion d’un utilisateur de confiance sans spécifier d’informations supplémentaires sur le rôle, SET TRUSTED ROLE fait du rôle de confiance (s’il y en a un) le rôle courant sans l’activité supplémentaire de définir les paramètres DBP.

Un rôle de confiance n’est pas un type de rôle spécial, il peut être n’importe quel rôle créé avec l’instruction CREATE ROLE ou le rôle système prédéfini RDB$ADMIN.Il devient un rôle de connexion de confiance lorsque le sous-système de mappage des objets de sécurité fait correspondre le résultat de l’authentification renvoyé par le plugin avec le mappage local ou global de la base de données actuelle.Le rôle peut même être un rôle qui n’est pas explicitement accordé à cet utilisateur de confiance.

Note

Le rôle de confiance n’est pas attribué par défaut dans la connexion. Vous pouvez modifier ce comportement en utilisant le plugin d’authentification approprié et les opérateurs {CREATE | ALTER} MAPPING.

Un exemple d’utilisation d’un rôle de confiance est l’attribution du rôle système RDB$ADMIN aux administrateurs Windows lorsque l’authentification Windows de confiance est utilisée.

Gestion du fuseau horaire d’une session

SET TIME ZONE

Destination

Changer le fuseau horaire d’une session.

Syntaxe
SET TIME ZONE { <time-zone-string> | LOCAL }

<time-zone-string> ::=
    '<time-zone>'

<time-zone> ::=
    <time-zone-region>
  | [+/-] <hour-displacement> [: <minute-displacement>]

Change immédiatement le fuseau horaire de la session (la connexion actuelle).

Si vous spécifiez LOCAL, vous reviendrez au fuseau horaire initial de la session (soit celui par défaut, soit celui spécifié dans la propriété de connexion isc_dpb_session_time_zone).

Vous pouvez obtenir le fuseau horaire actuel de la session en utilisant la fonction RDB$GET_CONTEXT avec les arguments 'SYSTEM' pour l’espace de noms et 'SESSION_TIMEZONE' comme nom de variable.

Note

L’exécution de ALTER SESSION RESET a le même effet sur le fuseau horaire de la session que SET TIME ZONE LOCAL, mais réinitialise également d’autres propriétés de la session.

Example 1. Changer le fuseau horaire d’une session
set time zone '-02:00';
select rdb$get_context('SYSTEM', 'SESSION_TIMEZONE') from rdb$database;
-- returns -02:00

set time zone 'America/Sao_Paulo';
select rdb$get_context('SYSTEM', 'SESSION_TIMEZONE') from rdb$database;
-- returns America/Sao_Paulo

set time zone local;