SUSER_SNAME (Transact-SQL)
Gibt den einer Sicherheits-ID (SID) zugeordneten Anmeldenamen zurück.
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
Siehe auch