SUSER_SID (Transact-SQL)SUSER_SID (Transact-SQL)

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL DatabaseAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database

Gibt die SID (Sicherheits-ID) für den angegebenen Anmeldenamen zurück.Returns the security identification number (SID) for the specified login name.

Symbol für Themenlink Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

  
SUSER_SID ( [ 'login' ] [ , Param2 ] )   

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder früher finden Sie unter Dokumentation zu früheren Versionen.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumenteArguments

' login '' login '
Gilt für: SQL Server 2008SQL Server 2008 und höherApplies to: SQL Server 2008SQL Server 2008 and later

Der Anmeldename des Benutzers.Is the login name of the user. login ist vom Datentyp sysname.login is sysname. login ist optional und kann eine SQL ServerSQL Server-Anmeldung oder ein MicrosoftMicrosoft Windows-Benutzer bzw. eine -Gruppe darstellen.login, which is optional, can be a SQL ServerSQL Server login or MicrosoftMicrosoft Windows user or group. Falls login nicht angegeben wird, werden Informationen über den aktuellen Sicherheitskontext zurückgegeben.If login is not specified, information about the current security context is returned. Wenn der Parameter das Wort NULL enthalten ist, wird NULL zurückgegeben.If the parameter contains the word NULL will return NULL.

Param2Param2
Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höherApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later

Gibt an, ob der Anmeldename validiert wird.Specifies whether the login name is validated. Param2 weist den Typ int auf und ist optional.Param2 is of type int and is optional. Wenn Param2 den Wert 0 hat, wird der Anmeldename nicht überprüft.When Param2 is 0, the login name is not validated. Wenn fürParam2 nicht der Wert 0 angegeben wird, wird überprüft, ob der Windows-Anmeldename genau mit dem in SQL ServerSQL Server gespeicherten Anmeldenamen übereinstimmt.When Param2 is not specified as 0, the Windows login name is verified to be exactly the same as the login name stored in SQL ServerSQL Server.

RückgabetypenReturn Types

varbinary(85)varbinary(85)

BemerkungenRemarks

SUSER_SID kann als DEFAULT-Einschränkung in ALTER TABLE oder CREATE TABLE verwendet werden.SUSER_SID can be used as a DEFAULT constraint in either ALTER TABLE or CREATE TABLE. SUSER_SID kann in der SELECT-Liste, in einer WHERE-Klausel und überall dort verwendet werden, wo ein Ausdruck zulässig ist.SUSER_SID can be used in a select list, in a WHERE clause, and anywhere an expression is allowed. Auf SUSER_SID müssen immer Klammern folgen, selbst wenn kein Parameter angegeben wird.SUSER_SID must always be followed by parentheses, even if no parameter is specified.

Bei einem Aufruf ohne Argument gibt SUSER_SID die SID des aktuellen Sicherheitskontexts zurück.When called without an argument, SUSER_SID returns the SID of the current security context. Bei einem Aufruf ohne Argument innerhalb eines Batches, bei dem der Kontext mithilfe von EXECUTE AS gewechselt wurde, gibt SUSER_SID die SID des Kontexts an, dessen Identität angenommen wurde.When called without an argument within a batch that has switched context by using EXECUTE AS, SUSER_SID returns the SID of the impersonated context. Wenn SUSER_SID(ORIGINAL_LOGIN()) aus einem Kontext aufgerufen wird, dessen Identität angenommen wurde, wird die SID des ursprünglichen Kontexts zurückgegeben.When called from an impersonated context, SUSER_SID(ORIGINAL_LOGIN()) returns the SID of the original context.

Unterscheiden sich die SQL ServerSQL Server-Sortierung und die Windows-Sortierung, kann SUSER_SID fehlschlagen, wenn SQL ServerSQL Server und Windows die Anmeldung in einem unterschiedlichen Format speichern.When the SQL ServerSQL Server collation and the Windows collation are different, SUSER_SID can fail when SQL ServerSQL Server and Windows store the login in a different format. Falls der Windows-Computer "TestComputer" z. B. über den Anmeldenamen "User" verfügt und SQL ServerSQL Server die Anmeldung als TESTCOMPUTER\User speichert, kann die Suche nach der Anmeldung "TestComputer\User" den Anmeldenamen ggf. nicht richtig auflösen.For example, if the Windows computer TestComputer has the login User and SQL ServerSQL Server stores the login as TESTCOMPUTER\User, the lookup of the login TestComputer\User might fail to resolve the login name correctly. Verwenden Sie Param2, um diese Überprüfung des Anmeldenamens zu überspringen.To skip this validation of the login name, use Param2. Abweichende Sortierungen sind häufig die Ursache für den SQL ServerSQL Server-Fehler 15401:Differing collations is often a cause of SQL ServerSQL Server error 15401:

Windows NT user or group '%s' not found. Check the name again.

Hinweise zu Azure SQL-DatenbankAzure SQL DatabaseAzure SQL-DatenbankAzure SQL Database Remarks

SUSER_SID gibt immer die Sicherheits-ID für den aktuellen Sicherheitskontext zurück.SUSER_SID always return the login SID for the current security context. Verwenden Sie sys.database_principals, um die Sicherheits-ID einer anderen Anmeldung zu erhalten.Use sys.database_principals to obtain the SID of a different login.

Die SUSER_SID-Anweisung unterstützt nicht die Ausführung mit einem Sicherheitskontext, dessen Identität angenommen wird, durch EXECUTE AS.The SUSER_SID statement does not support execution using an impersonated security context through EXECUTE AS.

BeispieleExamples

A.A. Verwenden von SUSER_SIDUsing SUSER_SID

Im folgenden Beispiel wird die Sicherheits-ID (SID) für den aktuellen Sicherheitskontext zurückgegeben.The following example returns the security identification number (SID) for the current security context.

SELECT SUSER_SID();  

B.B. Verwenden von SUSER_SID mit bestimmten AnmeldedatenUsing SUSER_SID with a specific login

Im folgenden Beispiel wird die Sicherheits-ID für den SQL ServerSQL Server sa-Anmeldenamen zurückgegeben.The following example returns the security identification number for the SQL ServerSQL Server sa login.

Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höherApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later

SELECT SUSER_SID('sa');  
GO  

C.C. Verwenden von SUSER_SID mit einem Windows-BenutzernamenUsing SUSER_SID with a Windows user name

Im folgenden Beispiel wird die Sicherheits-ID für den Windows-Benutzer London\Workstation1 zurückgegeben.The following example returns the security identification number for the Windows user London\Workstation1.

Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höherApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later

SELECT SUSER_SID('London\Workstation1');  
GO  

D:D. Verwenden von SUSER_SID als DEFAULT-EinschränkungUsing SUSER_SID as a DEFAULT constraint

Im folgenden Beispiel wird SUSER_SID als DEFAULT-Einschränkung in einer CREATE TABLE-Anweisung verwendet.The following example uses SUSER_SID as a DEFAULT constraint in a CREATE TABLE statement.

USE AdventureWorks2012;  
GO  
CREATE TABLE sid_example  
(  
login_sid   varbinary(85) DEFAULT SUSER_SID(),  
login_name  varchar(30) DEFAULT SYSTEM_USER,  
login_dept  varchar(10) DEFAULT 'SALES',  
login_date  datetime DEFAULT GETDATE()  
);   
GO  
INSERT sid_example DEFAULT VALUES;  
GO  

E.E. Vergleichen des Windows-Anmeldenamens mit dem in SQL Server gespeicherten AnmeldenamenComparing the Windows login name to the login name stored in SQL Server

Das folgende Beispiel zeigt, wie Sie Param2 zum Abrufen der SID von Windows verwenden und wie diese SID als Eingabe für die SUSER_SNAME-Funktion verwendet wird.The following example shows how to use Param2 to obtain the SID from Windows and uses that SID as an input to the SUSER_SNAME function. Im Beispiel wird die Anmeldung in dem Format verwendet, in dem sie unter Windows gespeichert ist (TestComputer\User). Die Anmeldung wird dann in dem Format zurückgegeben, in dem sie in SQL ServerSQL Server gespeichert ist (TESTCOMPUTER\User).The example provides the login in the format in which it is stored in Windows (TestComputer\User), and returns the login in the format in which it is stored in SQL ServerSQL Server (TESTCOMPUTER\User).

Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höherApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later

SELECT SUSER_SNAME(SUSER_SID('TestComputer\User', 0));  

Weitere InformationenSee Also

ORIGINAL_LOGIN (Transact-SQL) ORIGINAL_LOGIN (Transact-SQL)
CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
binary und varbinary (Transact-SQL) binary and varbinary (Transact-SQL)
Systemfunktionen (Transact-SQL)System Functions (Transact-SQL)