SUSER_SNAME (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Gibt den einer Sicherheits-ID (SID) zugeordneten Anmeldenamen zurück.

Transact-SQL-Syntaxkonventionen

Syntax

SUSER_SNAME ( [ server_user_sid ] )

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

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_SNAMENULL 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