Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Förhandsversion av Microsoft Fabric
Returnerar inloggningsnamnet som är associerat med ett säkerhetsidentifieringsnummer (SID).
Transact-SQL syntaxkonventioner
Syntax
SUSER_SNAME ( [ server_user_sid ] )
Arguments
server_user_sid
Det valfria säkerhetsidentifieringsnumret för inloggning.
server_user_sid är varbinary(85).
server_user_sid kan vara säkerhetsidentifieringsnumret för valfri SQL Server-inloggning eller Microsoft Windows-användare eller grupp.
sid Se kolumnen i sys.server_principals eller sys.sql_logins katalogvyerna. Om server_user_sid inte anges returneras information om den aktuella användaren. Om parametern innehåller ordet NULLreturnerar NULL. SUSER_SNAME
server_user_sid stöds inte i Azure SQL Database eller SQL Database i Förhandsversionen av Microsoft Fabric.
Returtyp
nvarchar(128)
Anmärkningar
SUSER_SNAME kan användas som en DEFAULT begränsning i antingen ALTER TABLE eller CREATE TABLE.
SUSER_SNAME kan användas i en urvalslista, i en WHERE sats och var som helst där ett uttryck tillåts.
SUSER_SNAME måste alltid följas av parenteser, även om ingen parameter har angetts.
När det anropas utan argument SUSER_SNAME returneras namnet på den aktuella säkerhetskontexten. När det anropas utan argument i en batch som har växlat kontext med hjälp EXECUTE ASav returneras SUSER_SNAME namnet på den personifierade kontexten. När det anropas från en personifierad kontext ORIGINAL_LOGIN returneras namnet på den ursprungliga kontexten.
Kommentarer för Azure SQL Database, SQL Database i Fabric
SUSER_SNAME returnerar alltid inloggningsnamnet för den aktuella säkerhetskontexten.
-instruktionen SUSER_SNAME stöder inte körning med hjälp av en personifierad säkerhetskontext via EXECUTE AS.
SUSER_SNAME stöder inte argumentet server_user_id .
Examples
A. Använda SUSER_SNAME
I följande exempel returneras inloggningsnamnet för den aktuella säkerhetskontexten.
SELECT SUSER_SNAME();
GO
B. Använda SUSER_SNAME med ett Windows-användarsäkerhets-ID
I följande exempel returneras inloggningsnamnet som är associerat med ett Windows-säkerhetsidentifieringsnummer.
SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO
C. Använd SUSER_SNAME som standardvillkor
I följande exempel används SUSER_SNAME som en DEFAULT begränsning i en CREATE TABLE -instruktion.
USE AdventureWorks2022;
GO
CREATE TABLE sname_example (
login_sname SYSNAME DEFAULT SUSER_SNAME(),
employee_id UNIQUEIDENTIFIER DEFAULT NEWID(),
login_date DATETIME DEFAULT GETDATE()
);
GO
INSERT sname_example DEFAULT
VALUES;
GO
D. Anropa SUSER_SNAME i kombination med EXECUTE AS
Det här exemplet visar beteendet SUSER_SNAME för när det anropas från en personifierad kontext.
SELECT SUSER_SNAME();
GO
EXECUTE AS LOGIN = 'WanidaBenShoof';
SELECT SUSER_SNAME();
REVERT;
GO
SELECT SUSER_SNAME();
GO
Här är resultatet.
sa
WanidaBenShoof
sa
Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)
E. Använda SUSER_SNAME
I följande exempel returneras inloggningsnamnet för säkerhetsidentifieringsnumret med värdet 0x01.
SELECT SUSER_SNAME(0x01);
GO
F. Returnera den aktuella inloggningen
I följande exempel returneras inloggningsnamnet för den aktuella inloggningen.
SELECT SUSER_SNAME() AS CurrentLogin;
GO