CREATE LOGIN (Transact-SQL)

Erstellt einen neuen SQL Server-Anmeldenamen. 

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

CREATE LOGIN loginName { WITH <option_list1> | FROM <sources> }

<option_list1> ::= 
    PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
    [ , <option_list2> [ ,... ] ]

<option_list2> ::=  
    SID = sid
    | DEFAULT_DATABASE = database    
    | DEFAULT_LANGUAGE = language
    | CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}
    | CREDENTIAL = credential_name 

<sources> ::=
    WINDOWS [ WITH <windows_options>[ ,... ] ]
    | CERTIFICATE certname
    | ASYMMETRIC KEY asym_key_name

<windows_options> ::=      
    DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language

Argumente

  • loginName
    Gibt den Namen des erstellten Anmeldenamens an. Vier Anmeldenamentypen werden verwendet: Anmeldenamen für die SQL Server-Authentifizierung, Windows-Anmeldenamen, Anmeldenamen mit zugeordneten Zertifikaten und Anmeldenamen mit zugeordneten asymmetrischen Schlüsseln. Wenn Sie Anmeldenamen erstellen, die von einem Windows-Domänenkonto zugeordnet werden, müssen Sie den Benutzeranmeldenamen für ältere Versionen als Windows 2000 im Format [<Domänenname>\<Anmeldename>] verwenden. Sie können keinen UPN im Format "Anmeldename@Domänenname" verwenden. Ein Beispiel finden Sie weiter unten in diesem Thema in Beispiel D. Anmeldenamen für die SQL Server-Authentifizierung sind vom Typ sysname. Sie müssen den Regeln für Bezeichner entsprechen und dürfen keine \-Zeichen enthalten. Windows-Anmeldenamen können \-Zeichen enthalten.

  • PASSWORD ='password'
    Gilt nur für SQL Server-Anmeldenamen. Gibt das Kennwort für den Anmeldenamen an, der erstellt wird. Sie sollten ein sicheres Kennwort verwenden. Weitere Informationen finden Sie unter Sichere Kennwörter.

  • PASSWORD **=**hashed_password
    Gilt nur für das HASHED-Schlüsselwort. Gibt den Hashwert des Kennworts für den Anmeldenamen an, der erstellt wird.

  • HASHED
    Gilt nur für SQL Server-Anmeldenamen. Gibt an, dass das nach dem PASSWORD-Argument eingegebene Kennwort bereits einen Hashwert darstellt. Wenn diese Option nicht ausgewählt wird, wird aus der als Kennwort eingegebenen Zeichenfolge vor dem Speichern in der Datenbank ein Hashwert erstellt. Diese Option sollte nur zum Migrieren von Datenbanken von einem Server zu einem anderen Server verwendet werden. Verwenden Sie die HASHED-Option nicht zum Erstellen neuer Anmeldenamen.

  • MUST_CHANGE
    Gilt nur für SQL Server-Anmeldenamen. Wenn diese Option angegeben wird, wird der Benutzer von SQL Server zur Eingabe eines neuen Kennworts aufgefordert, wenn der neue Anmeldename zum ersten Mal verwendet wird.

  • CREDENTIAL **=**credential_name
    Die Anmeldeinformationen, die dem neuen SQL Server-Anmeldenamen zugeordnet werden sollen. Die Anmeldeinformationen müssen bereits auf dem Server vorhanden sein. Momentan verknüpft diese Option nur die Anmeldeeinformationen mit einem Anmeldenamen. Es ist nicht möglich, Anmeldeinformationen dem sa-Anmeldenamen zuzuordnen.

  • SID = sid
    Gilt nur für SQL Server-Anmeldenamen. Gibt die GUID des neuen SQL Server-Anmeldenamens an. Wenn diese Option nicht ausgewählt wird, wird von SQL Server automatisch ein GUID zugewiesen.

  • DEFAULT_DATABASE **=**database
    Gibt die Standarddatenbank an, die dem Anmeldenamen zugewiesen werden soll. Wenn diese Option nicht enthalten ist, wird master als Standarddatenbank festgelegt.

  • DEFAULT_LANGUAGE **=**language
    Gibt die Standardsprache an, die dem Anmeldenamen zugewiesen werden soll. Wenn diese Option nicht enthalten ist, wird die aktuelle Standardsprache des Servers als Standardsprache festgelegt. Wenn die Standardsprache des Servers zu einem späteren Zeitpunkt geändert wird, wird die Standardsprache des Anmeldenamens nicht geändert.

  • CHECK_EXPIRATION = { ON | OFF }
    Gilt nur für SQL Server-Anmeldenamen. Gibt an, ob die Richtlinie für das Ablaufen von Kennwörtern für diesen Anmeldenamen erzwungen werden soll. Der Standardwert ist OFF.

  • CHECK_POLICY = { ON | OFF }
    Gilt nur für SQL Server-Anmeldenamen. Gibt an, dass die Windows-Kennwortrichtlinien des Computers, auf dem SQL Server ausgeführt wird, für diesen Anmeldenamen erzwungen werden sollen. Der Standardwert ist ON.

  • WINDOWS
    Gibt an, dass der Anmeldename einem Windows-Anmeldenamen zugeordnet wird.

  • CERTIFICATE certname
    Gibt den Namen eines Zertifikats an, das diesem Anmeldenamen zugeordnet werden soll. Dieses Zertifikat muss bereits in der master-Datenbank vorhanden sein.

  • ASYMMETRIC KEY asym_key_name
    Gibt den Namen eines asymmetrischen Schlüssels an, der diesem Anmeldenamen zugeordnet werden soll. Dieser Schlüssel muss bereits in der master-Datenbank vorhanden sein.

Hinweise

Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.

Das vorherige Erstellen von Hashwerten für Kennwörter wird nur unterstützt, wenn Sie SQL Server-Anmeldenamen erstellen.

Falls MUST_CHANGE angegeben wird, müssen CHECK_EXPIRATION und CHECK_POLICY auf ON festgelegt werden. Andernfalls erzeugt die Anweisung einen Fehler.

Die Kombination aus CHECK_POLICY = OFF und CHECK_EXPIRATION = ON wird nicht unterstützt.

Wenn CHECK_POLICY auf OFF festgelegt ist, wird lockout_time zurückgesetzt, und CHECK_EXPIRATION wird auf OFF festgelegt.

Wichtiger HinweisWichtig

CHECK_EXPIRATION und CHECK_POLICY werden nur unter Windows Server 2003 und höher erzwungen. Weitere Informationen finden Sie unter Kennwortrichtlinie.

Aus Zertifikaten oder asymmetrischen Schlüsseln erstellte Anmeldenamen werden nur zum Signieren von Code verwendet. Sie können nicht verwendet werden, um eine Verbindung mit SQL Server herzustellen. Sie können nur dann einen Anmeldenamen aus einem Zertifikat oder einem asymmetrischen Schlüssel erstellen, wenn das Zertifikat bzw. der asymmetrische Schlüssel bereits in master vorhanden ist.

Ein Skript zum Übertragen von Anmeldenamen finden Sie im Thema zum Übertragen der Anmeldenamen und Kennwörter zwischen Instanzen von SQL Server 2005 und SQL Server 2008.

Berechtigungen

Erfordert die ALTER ANY LOGIN-Berechtigung auf dem Server oder die Mitgliedschaft bei der festen Serverrolle securityadmin.

Falls die Option CREDENTIAL verwendet wird, ist auch die ALTER ANY CREDENTIAL-Berechtigung auf dem Server erforderlich.

Beispiele

A. Erstellen eines Anmeldenamens mit einem Kennwort

Im folgenden Beispiel wird ein Anmeldenamen für eine bestimmte Benutzer-ID erstellt, und es wird ein Kennwort zugewiesen. Die Option MUST_CHANGE erfordert, dass Benutzer dieses Kennwort ändern, wenn sie das erste Mal eine Verbindung mit dem Server herstellen.

CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO

B. Erstellen eines Anmeldeinformationen zugeordneten Anmeldenamens

Im folgenden Beispiel wird unter Verwendung der Benutzer-ID der Anmeldenamen für einen bestimmten Benutzer erstellt. Dieser Anmeldename wird den Anmeldeinformationen zugeordnet.

CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>', 
    CREDENTIAL = <credentialName>;
GO

C. Erstellen eines Anmeldenamens von einem Zertifikat

Im folgenden Beispiel wird der Anmeldename für eine bestimmte Benutzer-ID von einem Zertifikat in master erstellt.

USE MASTER;
CREATE CERTIFICATE <certificateName>
    WITH SUBJECT = '<loginName> certificate in master database',
    EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <loginName> FROM CERTIFICATE <certificateName>;
GO

D. Erstellen eines Anmeldenamens von einem Windows-Domänenkonto

Im folgenden Beispiel wird ein Anmeldename von einem Windows-Domänenkonto erstellt.

CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;
GO