CURRENT_USER (Transact-SQL)
S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)
Cette fonction retourne le nom de l’utilisateur actif. Cette fonction est équivalente à USER_NAME()
.
Conventions de la syntaxe Transact-SQL
Syntaxe
CURRENT_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
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 obtenu.
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 obtenu.
Wanida
Arnalfo
Wanida
Voir aussi
USER_NAME (Transact-SQL)
SYSTEM_USER (Transact-SQL)
sys.database_principals (Transact-SQL)
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
Fonctions système (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