CREATE LOGIN (Transact-SQL)

Erstellt eine Datenbankmodul-Anmeldung für SQL Server, Windows Azure SQL-Datenbank und SQL Server PDW.

HinweisHinweis

Die CREATE LOGIN-Optionen sind für SQL Server, SQL-Datenbank und SQL Server PDW unterschiedlich.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

-- Syntax for SQL Server
CREATE LOGIN login_name { 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

Syntax

-- Syntax for SQL Database
CREATE LOGIN login_name { WITH <option_list3> }

<option_list3> ::= 
    PASSWORD = { 'password' }

Syntax

-- Syntax for SQL Server PDW
CREATE LOGIN login_name { WITH <option_list4> }

< option_list4> ::= 
    PASSWORD = { 'password' } [ MUST_CHANGE ]
    [ , <option_list5> [ ,... ] ]

<option_list5> ::=  
      CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}

Argumente

  • login_name
    Gibt den Anmeldenamen an, der erstellt wird. Es gibt vier Arten von Anmeldungen: SQL Server-Anmeldungen, Windows-Anmeldungen, Zertifikaten zugeordnete Anmeldungen und asymmetrischen Schlüsseln zugeordnete Anmeldungen. Wenn Sie Anmeldenamen erstellen, die von einem Windows-Domänenkonto zugeordnet werden, müssen Sie den Benutzeranmeldenamen einer Version vor Windows 2000 im Format [<domainName>\<login_name>] verwenden. Sie können keinen UPN im Format "login_name@DomainName" verwenden. Ein Beispiel hierzu finden Sie unter "Beispiel D" weiter unten in diesem Thema. SQL Server-Authentifizierungsanmeldungen sind vom Typ sysname, entsprechen den Regeln für Bezeichner und können keinen „\“ 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 und Kennwortrichtlinie.

    Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. Kennwörter sollten immer mindestens 8 Zeichen lang sein und dürfen 128 Zeichen nicht überschreiten. Kennwörter dürfen a-z, A-Z, 0-9 und die meisten nicht alphanumerischen Zeichen einschließen. Kennwörter dürfen keine einfachen Anführungszeichen oder login_name enthalten.

  • 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 verwendet werden, um Datenbanken von einem Server auf einen anderen zu migrieren. Verwenden Sie die HASHED-Option nicht, um neue Anmeldenamen zu erstellen. Die HASHED-Option kann nicht mit Hashes verwendet werden, die in SQL Server 7 oder einer früheren Version erstellt wurden.

  • 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. Der sa-Anmeldung können Anmeldeinformationen nicht zugeordnet werden.

  • SID = sid
    Gilt nur für SQL Server-Anmeldenamen. Gibt den 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.

    Wenn die Windows-Richtlinie sichere Kennwörter erfordert, müssen Kennwörter mindestens drei der folgenden vier Eigenschaften aufweisen:

    • Ein Großbuchstabe (A-Z).

    • Ein Kleinbuchstabe (a-z).

    • Eine Ziffer (0-9).

    • Ein nicht alphanumerisches Zeichen, z. B. ein Leerzeichen, _, @, *, ^,%, !, $, # oder &.

  • 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.

Bei einer Angabe von MUST_CHANGE muss für CHECK_EXPIRATION und CHECK_POLICY der Wert ON festgelegt sein. 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 einen Anmeldenamen von einem Zertifikat oder einem asymmetrischen Schlüssel nur erstellen, wenn das Zertifikat oder 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.

Durch das Erstellen eines Anmeldenamens wird der neue Anmeldename automatisch aktiviert, und dem Anmeldenamen wird die CONNECT SQL-Berechtigung auf Serverebene gewährt.

Anmeldenamen für SQL-Datenbanken

In SQL-Datenbank muss die CREATE LOGIN-Anweisung die einzige Anweisung in einem Batch sein.

In einigen Methoden zur Verbindungsherstellung mit SQL-Datenbank, z. B. sqlcmd, müssen Sie den SQL-Datenbank-Servernamen in der Verbindungszeichenfolge mit der <login>@<server>-Schreibweise an den Anmeldenamen anfügen. Wenn der Anmeldename z. B. login1 lautet und der vollqualifizierte Name des SQL-Datenbank-Servers servername.database.windows.net ist, sollte der username-Parameter der Verbindungszeichenfolge login1@servername lauten. Da die Gesamtlänge des username-Parameters 128 Zeichen beträgt, ist login_name auf 127 Zeichen abzüglich der Länge des Servernamens beschränkt. Im Beispiel darf login_name nur 117 Zeichen lang sein, da servername 10 Zeichen enthält.

In SQL-Datenbank muss eine Verbindung mit der master-Datenbank bestehen, um einen Anmeldenamen zu erstellen.

Weitere Informationen zu SQL-Datenbank-Anmeldenamen finden Sie unter Verwalten von Datenbanken und Anmeldungen in Windows Azure SQL-Datenbanken.

Berechtigungen

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

In SQL-Datenbank können nur die Prinzipalanmeldenamen auf Serverebene (vom Bereitstellungsprozess erstellt) oder die Mitglieder der Datenbankrolle loginmanager in der master-Datenbank neue Anmeldenamen erstellen.

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

Nächste Schritte

Nach dem Erstellen eines Anmeldenamens kann mit dem Namen eine Verbindung mit der Datenbankmodul-, SQL-Datenbank- oder SQL Server PDW-Anwendung hergestellt werden, er verfügt jedoch nur über die der Rolle public gewährten Berechtigungen. Ziehen Sie das Ausführen einiger der folgenden Aktivitäten in Betracht.

Beispiele

A.Erstellen eines Anmeldenamens mit einem Kennwort

Gilt für alle.

Im folgenden Beispiel wird ein Anmeldename für einen bestimmten Benutzer erstellt, und es wird ein Kennwort zugewiesen.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B.Erstellen eines Anmeldenamens mit einem Kennwort

Gilt für SQL Server und SQL Server PDW.

Im folgenden Beispiel wird ein Anmeldename für einen bestimmten Benutzer 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 <login_name> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO

C.Erstellen eines Anmeldeinformationen zugeordneten Anmeldenamens

Gilt für SQL Server.

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

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

D.Erstellen eines Anmeldenamens von einem Zertifikat

Gilt für SQL Server.

Im folgenden Beispiel wird der Anmeldename für einen bestimmten Benutzer aus einem Zertifikat in master erstellt.

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

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

Gilt für SQL Server.

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

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

Siehe auch

Verweis

ALTER LOGIN (Transact-SQL)

DROP LOGIN (Transact-SQL)

EVENTDATA (Transact-SQL)

Konzepte

Prinzipale (Datenbankmodul)

Kennwortrichtlinie

Erstellen eines Anmeldenamens