Teilen über


SUSER_SNAME (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank in Microsoft Fabric Preview

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_SNAMENULL zurückgegeben.

server_user_sid wird in der Azure SQL-Datenbank oder SQL-Datenbank in Microsoft Fabric Preview nicht unterstützt.

Rückgabetyp

nvarchar(128)

Hinweise

SUSER_SNAME kann als DEFAULT Einschränkung in einer ALTER TABLE oder CREATE TABLEin . SUSER_SNAME kann in einer Auswahlliste, in einer Klausel und an einer WHERE beliebigen Stelle verwendet werden, an der 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 für Azure SQL-Datenbank, SQL-Datenbank in Fabric

SUSER_SNAME gibt den Anmeldenamen für den aktuellen Sicherheitskontext zurück.

Die SUSER_SNAME Anweisung unterstützt die Ausführung nicht mithilfe eines imitierten Sicherheitskontexts 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 eine DEFAULT Einschränkung in einer CREATE TABLE Anweisung verwendetSUSER_SNAME.

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