Freigeben über


SUSER_SNAME (Transact-SQL)

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

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

SUSER_SNAME ( [ server_user_sid ] )

Argumente

  • server_user_sid
    Entspricht der Anmeldesicherheits-ID. server_user_sid (optional) entspricht varbinary(85). server_user_sid kann der Sicherheits-ID einer beliebigen SQL Server-Anmeldung oder eines Microsoft Windows-Benutzers bzw. einer -Gruppe entsprechen. Wenn server_user_sid nicht angegeben ist, werden Informationen zum aktuellen Benutzer zurückgegeben. Wenn das Wort NULL enthalten ist, wird NULL zurückgegeben.

Rückgabetypen

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. SUSER_SNAME muss immer von Klammern gefolgt sein, selbst wenn kein Parameter angegeben wird.

Wenn SUSER_SNAME ohne Argument aufgerufen wird, wird der Name des aktuellen Sicherheitskontexts zurückgegeben. Wenn SUSER_SNAME ohne Argument innerhalb eines Batches aufgerufen wird, der den Kontext mithilfe von EXECUTE AS gewechselt hat, wird der Name des Kontexts zurückgegeben, dessen Identität angenommen wurde. Wenn ORIGINAL_LOGIN aus einem Kontext aufgerufen wird, dessen Identität angenommen wurde, wird der Name des ursprünglichen Kontexts zurückgegeben.

Beispiele

A. 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

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 AdventureWorks2008R2;
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

Im folgenden Beispiel wird das Verhalten von SUSER_SNAME bei Aufruf in einem Kontext mit Identitätswechsel veranschaulicht.

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