SUSER_SNAME (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
Gibt den einer Sicherheits-ID (SID) zugeordneten Anmeldenamen zurück.
Transact-SQL-Syntaxkonventionen
Syntax
SUSER_SNAME ( [ server_user_sid ] )
Argumente
server_user_sid
Die optionale Anmeldesicherheits-ID. server_user_sid ist varbinary(85). server_user_sid kann der Sicherheits-ID einer beliebigen SQL Server-Anmeldung oder eines Microsoft-Windows-Benutzers bzw. einer -Gruppe entsprechen. Verweisen Sie auf die sid
-Spalte in sys.server_principals
oder sys.sql_logins
-Katalogansichten. Wenn server_user_sid nicht angegeben ist, werden Informationen zum aktuellen Benutzer zurückgegeben. Wenn der Parameter das Wort NULL
enthalten ist, wird SUSER_SNAME
NULL
zurückgegeben.
server_user_sid wird in Azure SQL-Datenbank nicht unterstützt.
Rückgabetyp
nvarchar(128)
Hinweise
SUSER_SNAME
kann als DEFAULT-Einschränkung in ALTER TABLE
oder CREATE TABLE
verwendet werden. SUSER_SNAME
kann in einer Auswahlliste, in einer WHERE-Klausel und überall dort verwendet werden, wo ein Ausdruck zulässig ist. Auf SUSER_SNAME
müssen immer Klammern folgen, selbst wenn kein Parameter angegeben wird.
Wenn SUSER_SNAME
ohne Argument aufgerufen wird, wird der Name des aktuellen Sicherheitskontexts zurückgegeben. Wenn ohne Argument innerhalb eines Batches aufgerufen wird, der den Kontext mithilfe von EXECUTE AS
gewechselt hat, wird SUSER_SNAME
den Name des Kontexts zurückgegeben, dessen Identität angenommen wurde. Bei einem Aufruf aus einem Kontext heraus, dessen Identität angenommen wurde, gibt ORIGINAL_LOGIN
den Namen des ursprünglichen Kontexts zurück.
Hinweise zu Azure SQL-Datenbank
SUSER_SNAME
gibt den Anmeldenamen für den aktuellen Sicherheitskontext zurück.
Die SUSER_SNAME
-Anweisung unterstützt nicht die Ausführung mit einem Sicherheitskontext, dessen Identität angenommen wird, durch EXECUTE AS.
SUSER_SNAME
unterstützt das Argument server_user_id nicht.
Beispiele
A. Verwenden von SUSER_SNAME
Im folgenden Beispiel wird der Anmeldename für den aktuellen Sicherheitskontext zurückgegeben.
SELECT SUSER_SNAME();
GO
B. Verwenden von SUSER_SNAME mit der Sicherheits-ID eines Windows-Benutzers
Im folgenden Beispiel wird der einer Windows-Sicherheits-ID zugeordnete Anmeldename zurückgegeben.
SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO
C. Verwenden von SUSER_SNAME als DEFAULT-Einschränkung
Im folgenden Beispiel wird SUSER_SNAME
als DEFAULT-Einschränkung in einer CREATE TABLE
-Anweisung verwendet.
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: Aufrufen von SUSER_SNAME in Verbindung mit EXECUTE AS
Dieses Beispiel zeigt das Verhalten von SUSER_SNAME
beim Aufrufen aus einem Kontext, dessen Identität angenommen wurde.
SELECT SUSER_SNAME();
GO
EXECUTE AS LOGIN = 'WanidaBenShoof';
SELECT SUSER_SNAME();
REVERT;
GO
SELECT SUSER_SNAME();
GO
Im Folgenden wird das Ergebnis aufgeführt:
sa
WanidaBenShoof
sa
Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)
E. Verwenden von SUSER_SNAME
Im folgenden Beispiel wird der Anmeldename für die Sicherheits-ID mit einem Wert von 0x01
zurückgegeben.
SELECT SUSER_SNAME(0x01);
GO
F. Zurückgeben der aktuellen Anmeldung
Das folgende Beispiel gibt den Anmeldenamen der aktuellen Anmeldung zurück.
SELECT SUSER_SNAME() AS CurrentLogin;
GO