SUSER_SNAME (Transact-SQL)

 

**DIESES THEMA GILT FÜR:** ![](../Image/Applies%20to/yes.png)SQL Server \(ab 2008\) ![](../Image/Applies%20to/yes.png)Azure SQL\-Datenbank ![](../Image/Applies%20to/yes.png)Azure SQL Data Warehouse ![](../Image/Applies%20to/yes.png)Parallel Data Warehouse

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

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Azure SQL-Datenbank.

Topic link icon Transact-SQL-Syntaxkonventionen

  
SUSER_SNAME ( [ server_user_sid ] )   

server_user_sid

Gilt für: SQL Server 2008 bis SQL Server 2016.

Entspricht der optionalen Anmeldesicherheits-ID. server_user_sid ist 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.

nvarchar(128)

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.

SUSER_NAME gibt stets 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.

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.

Gilt für: SQL Server 2008 bis SQL Server 2016.
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.

Gilt für: SQL Server 2008 bis SQL Server 2016.
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

SUSER_SID (Transact-SQL)
Prinzipale (Datenbankmodul)
sys.server_principals (Transact-SQL)
EXECUTE AS (Transact-SQL)

Community-Beiträge

Anzeigen: