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, USER_NAME zal de terugkering NULLgevenNULL. 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. Roep USER_NAME aan 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