SESSION_USER (Transact-SQL)
S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)
SESSION_USER retourne le nom d'utilisateur du contexte actuel dans la base de données active.
Conventions de la syntaxe Transact-SQL
Syntaxe
SESSION_USER
Remarque
Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.
Types de retour
nvarchar(128)
Remarques
Utilisez SESSION_USER comme une fonction standard ou avec les contraintes DEFAULT dans les instructions CREATE TABLE ou ALTER TABLE. La fonction SESSION_USER peut être insérée dans une table quand aucune valeur par défaut n'est spécifiée. Cette fonction ne prend pas d'arguments. SESSION_USER peut s'utiliser dans des requêtes.
Si un appel à SESSION_USER intervient après un commutateur de contexte, cette fonction retourne le nom d'utilisateur du nouveau contexte.
Exemples
R. Utilisation de SESSION_USER pour obtenir le nom d'utilisateur de la session active
L'exemple suivant déclare une variable de type nchar
, lui affecte la valeur actuelle de SESSION_USER
, puis imprime la variable avec un texte descriptif.
DECLARE @session_usr NCHAR(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO
Voici les résultats obtenus lorsque l'utilisateur de la session est Surya
:
--------------------------------------------------------------
This session's current user is: Surya
(1 row(s) affected)
B. Utilisation de SESSION_USER avec les contraintes DEFAULT
L'exemple suivant crée une table qui utilise SESSION_USER
en tant que contrainte DEFAULT
pour obtenir le nom de la personne qui enregistre la réception d'une livraison.
USE AdventureWorks2022;
GO
CREATE TABLE deliveries3
(
order_id INT IDENTITY(5000, 1) NOT NULL,
cust_id INT NOT NULL,
order_date SMALLDATETIME NOT NULL DEFAULT GETDATE(),
delivery_date SMALLDATETIME NOT NULL DEFAULT
DATEADD(dd, 10, GETDATE()),
received_shipment NCHAR(30) NOT NULL DEFAULT SESSION_USER
);
GO
Les enregistrements ajoutés à la table seront marqués par le nom d'utilisateur de l'utilisateur en cours. Dans cet exemple, Wanida
, Sylvester
et Alejandro
vérifient la réception des livraisons. Une émulation est possible en changeant de contexte utilisateur à l'aide de l'instruction EXECUTE AS
.
EXECUTE AS USER = 'Wanida'
INSERT deliveries3 (cust_id)
VALUES (7510);
INSERT deliveries3 (cust_id)
VALUES (7231);
REVERT;
EXECUTE AS USER = 'Sylvester'
INSERT deliveries3 (cust_id)
VALUES (7028);
REVERT;
EXECUTE AS USER = 'Alejandro'
INSERT deliveries3 (cust_id)
VALUES (7392);
INSERT deliveries3 (cust_id)
VALUES (7452);
REVERT;
GO
La requête suivante sélectionne toutes les informations de la table deliveries3
.
SELECT order_id AS 'Order #', cust_id AS 'Customer #',
delivery_date AS 'When Delivered', received_shipment
AS 'Received By'
FROM deliveries3
ORDER BY order_id;
GO
Voici le jeu de résultats obtenu.
Order # Customer # When Delivered Received By
-------- ---------- ------------------- -----------
5000 7510 2005-03-16 12:02:14 Wanida
5001 7231 2005-03-16 12:02:14 Wanida
5002 7028 2005-03-16 12:02:14 Sylvester
5003 7392 2005-03-16 12:02:14 Alejandro
5004 7452 2005-03-16 12:02:14 Alejandro
(5 row(s) affected)
Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)
C. Utilisation de SESSION_USER pour obtenir le nom d’utilisateur de la session en cours
L’exemple suivant renvoie l’utilisateur de la session en cours.
SELECT SESSION_USER;
Voir aussi
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
Fonctions système (Transact-SQL)
USER (Transact-SQL)
USER_NAME (Transact-SQL)
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour