Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric
Geeft een databasegebruikersnaam terug van een opgegeven identificatienummer, of de huidige gebruikersnaam.
Transact-SQL syntaxis-conventies
Syntaxis
USER_NAME ( [ ID ] )
Arguments
Id
Het identificatienummer dat gekoppeld is aan een databasegebruiker, zoals vermeld in sys.database_principals. ID is int. De haakjes zijn vereist.
Retourtypen
nvarchar(128)
Opmerkingen
Wanneer ID wordt weggelaten, wordt aangenomen dat de huidige gebruiker in de huidige context is. Als de parameter het woord bevat, NULL zal de terugkering USER_NAMEgevenNULL. Wanneer USER_NAME wordt aangeroepen zonder een ID te specificeren na een EXECUTE AS instructie, USER_NAME geeft de naam van de geïmiteerde gebruiker terug. Als een Windows-principal toegang krijgt tot de database via lidmaatschap van een groep, USER_NAME geeft hij de naam van de Windows-principal terug in plaats van de groep.
Hoewel de USER_NAME() functie wordt ondersteund op Azure SQL Database, wordt gebruik EXECUTE AS USER = USER_NAME(n) niet ondersteund op Azure SQL Database.
Voorbeelden
Eén. Gebruik USER_NAME() om een gebruikers-ID te identificeren
Het volgende voorbeeld geeft de gebruikersnaam terug voor user ID 13, zoals vermeld in sys.database_principals.
SELECT USER_NAME(13);
GO
B. Gebruik USER_NAME zonder ID
Het volgende voorbeeld vindt de naam van de huidige gebruiker zonder een ID op te geven.
SELECT USER_NAME();
GO
Hier is de resultaatset voor een gebruiker die lid is van de sysadmin fixed server-rol.
dbo
C. Gebruik USER_NAME in de WHERE-clausule
Het volgende voorbeeld vindt de rij in sys.database_principals, waarin de naam gelijk is aan het resultaat van het toepassen van de systeemfunctie USER_NAME op gebruikersidentificatienummer 1.
SELECT name FROM sys.database_principals WHERE name = USER_NAME(1);
GO
Hier is het resultatenoverzicht.
name
------------------------------
dbo
(1 row(s) affected)
D. Bel USER_NAME tijdens imitatie met EXECUTE AS
Het volgende voorbeeld laat zien hoe USER_NAME hij zich gedraagt tijdens imitatie.
EXECUTE AS momenteel niet ondersteund op Microsoft Fabric.
Waarschuwing
Bij testen met EXECUTE AS, script altijd een script om REVERT te volgen.
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
Hier is het resultatenoverzicht.
-------------
dbo
-------------
Zelig
-------------
dbo
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
E. Gebruik USER_NAME zonder ID
Het volgende voorbeeld vindt de naam van de huidige gebruiker zonder een ID op te geven.
SELECT USER_NAME();
Hier is de resultaatset voor een momenteel ingelogde gebruiker.
User7
F. Gebruik USER_NAME in de WHERE-clausule
Het volgende voorbeeld vindt de rij sysusers waarin de naam gelijk is aan het resultaat van het toepassen van de systeemfunctie USER_NAME op gebruikersidentificatienummer 1.
SELECT name FROM sysusers WHERE name = USER_NAME(1);
Hier is het resultatenoverzicht.
name
------------------------------
User7