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 ist optional und vom Datentyp 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 der Parameter 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 AdventureWorks2012;
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

Siehe auch

Verweis

SUSER_SID (Transact-SQL)

sys.server_principals (Transact-SQL)

Konzepte

Prinzipale (Datenbankmodul)