Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Base de données SQL dans Microsoft Fabric
Cette fonction retourne le nom de l’utilisateur actif. Cette fonction est équivalente à USER_NAME().
Conventions de la syntaxe Transact-SQL
Syntaxe
CURRENT_USER
Types de retour
sysname
Notes
CURRENT_USER retourne le nom du contexte de sécurité actuel. Si CURRENT_USER s’exécute après qu’un appel à EXECUTE AS change de contexte, CURRENT_USER retourne le nom du contexte qui a fait l’objet d’un emprunt d’identité. Si un principal Windows a accédé à la base de données du fait de son appartenance à un groupe, CURRENT_USER retourne le nom du principal Windows à la place du nom du groupe.
Pour découvrir comment retourner le compte de connexion de l’utilisateur actif, consultez SUSER_NAME (Transact-SQL) et SYSTEM_USER (Transact-SQL).
Exemples
R. Utilisation de CURRENT_USER pour obtenir le nom de l'utilisateur actuel
Cet exemple retourne le nom de l’utilisateur actif.
SELECT CURRENT_USER;
GO
B. Utilisation de CURRENT_USER en tant que contrainte DEFAULT
Cet exemple crée une table qui utilise CURRENT_USER comme contrainte DEFAULT pour la colonne order_person dans une ligne de ventes.
USE AdventureWorks2022;
GO
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'orders22')
DROP TABLE orders22;
GO
SET NOCOUNT ON;
CREATE TABLE orders22
(
order_id int IDENTITY(1000, 1) NOT NULL,
cust_id int NOT NULL,
order_date smalldatetime NOT NULL DEFAULT GETDATE(),
order_amt money NOT NULL,
order_person char(30) NOT NULL DEFAULT CURRENT_USER
);
GO
Cet exemple insère un enregistrement dans la table. L’utilisateur nommé Wanida exécute ces instructions.
INSERT orders22 (cust_id, order_amt)
VALUES (5105, 577.95);
GO
SET NOCOUNT OFF;
GO
Cette requête sélectionne toutes les informations dans la table orders22.
SELECT * FROM orders22;
GO
Voici le jeu de résultats.
order_id cust_id order_date order_amt order_person
----------- ----------- -------------------- ------------ ------------
1000 5105 2005-04-03 23:34:00 577.95 Wanida
(1 row(s) affected)
C. Utilisation de CURRENT_USER à partir d'un contexte d'emprunt
Dans cet exemple, l’utilisateur Wanida exécute le code Transact-SQL suivant pour emprunter l’identité de l’utilisateur « Arnalfo ».
SELECT CURRENT_USER;
GO
EXECUTE AS USER = 'Arnalfo';
GO
SELECT CURRENT_USER;
GO
REVERT;
GO
SELECT CURRENT_USER;
GO
Voici le jeu de résultats.
Wanida
Arnalfo
Wanida
Voir aussi
USER_NAME (Transact-SQL)
SYSTEM_USER (Transact-SQL)
sys.database_principals (Transact-SQL)
MODIFIER LA TABLE (Transact-SQL)
CRÉER TABLE (Transact-SQL)
Fonctions système (Transact-SQL)