Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Egy megadott azonosító számból vagy a jelenlegi felhasználónévből származó adatbázis felhasználónevet ad vissza.
Transact-SQL szintaxis konvenciók
Szemantika
USER_NAME ( [ ID ] )
Arguments
Azonosító
Az adatbázis-felhasználóhoz tartozó azonosító szám, ahogy az sys.database_principals-ben szerepel. Az azonosítóint. A zárójelek szükségesek.
Visszatérési típusok
nvarchar(128)
Megjegyzések
Ha az azonosítót kihagyjuk, feltételezzük a jelenlegi felhasználót az aktuális kontextusban. Ha a paraméter tartalmazza a NULLszót, USER_NAME akkor visszaadja NULL-t . Amikor USER_NAME azonosító megadás nélkül hívják meg egy EXECUTE AS kijelentés után, USER_NAME visszaadja az imidentált felhasználó nevét. Ha egy Windows vezető a csoporttagság révén fér hozzá az adatbázishoz, USER_NAME akkor a Windows fő nevét adja vissza a csoport helyett.
Bár a USER_NAME() funkció támogatja az Azure SQL Database-en, az Azure SQL Database-ben EXECUTE AS USER = USER_NAME(n) nem támogatott.
Példák
A. Használj USER_NAME() felhasználói azonosító azonosításához
A következő példa adja vissza a felhasználói azonosító 13felhasználónevét, ahogy azt a sys.database_principals-ben felsoroljuk.
SELECT USER_NAME(13);
GO
B. Használd USER_NAME azonosító nélkül
A következő példa megtalálja a jelenlegi felhasználó nevét azonosító megadás nélkül.
SELECT USER_NAME();
GO
Íme az eredménykészlet egy olyan felhasználó számára, aki a rendszert szolgáltató fix szerver szerepének tagja.
dbo
C. Használd USER_NAME a WHERE záradékban
A következő példa megtalálja azt a sort, amelyben sys.database_principalsa név megegyezik azzal, hogy a rendszerfüggvényt USER_NAME a felhasználói azonosító számra 1alkalmazzuk .
SELECT name FROM sys.database_principals WHERE name = USER_NAME(1);
GO
Itt van az eredmények összessége.
name
------------------------------
dbo
(1 row(s) affected)
D. Hívd USER_NAME-t az EXECUTE AS-szal való beazonosítás közben
A következő példa bemutatja, hogyan USER_NAME viselkedik az utánzás során.
EXECUTE AS jelenleg nem támogatott a Microsoft Fabric-en.
Caution
Teszteléskor EXECUTE ASmindig írj egy REVERT a szkriptet követni.
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
Itt van az eredmények összessége.
-------------
dbo
-------------
Zelig
-------------
dbo
Példák: Azure Synapse Analytics and Analytics Platform System (PDW)
E. Használd USER_NAME azonosító nélkül
A következő példa megtalálja a jelenlegi felhasználó nevét azonosító megadás nélkül.
SELECT USER_NAME();
Íme az eredményhalmaza egy jelenleg bejelentkezett felhasználó számára.
User7
F. Használd USER_NAME a WHERE záradékban
A következő példa megtalálja azt a sort sysusers , amelyben a név megegyezik azzal, hogy a rendszerfüggvényt USER_NAME a felhasználói azonosító számra 1alkalmazzuk .
SELECT name FROM sysusers WHERE name = USER_NAME(1);
Itt van az eredmények összessége.
name
------------------------------
User7
Kapcsolódó tartalom
- SUSER_NAME (Transact-SQL)
- SUSER_SNAME (Transact-SQL)
- ALTERNATÍV TÁBLÁZAT (Transact-SQL)
- CREATE TABLE (Transact-SQL)
- CURRENT_TIMESTAMP (Transact-SQL)
- CURRENT_USER (Transact-SQL)
- SESSION_USER (Transact-SQL)
- Rendszerfunkciók (Transact-SQL)
- SYSTEM_USER (Transact-SQL)
- sys.database_principals (Transact-SQL).