CREATE LOGIN (Transact-SQL)

 

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data Warehouse

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

Topic link icon Transact-SQL-Syntaxkonventionen

-- 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 for Azure SQL Database and Azure SQL Data Warehouse  
  
CREATE LOGIN login_name  
 { WITH <option_list3> }  
  
<option_list3> ::=   
    PASSWORD = { 'password' }  
    [ SID = sid ]  

-- Syntax for Parallel Data Warehouse  
  
CREATE LOGIN loginName { WITH <option_list1> | FROM WINDOWS }  
  
<option_list1> ::=   
    PASSWORD = { 'password' } [ MUST_CHANGE ]  
    [ , <option_list2> [ ,... ] ]  
  
<option_list2> ::=    
      CHECK_EXPIRATION = { ON | OFF}  
    | CHECK_POLICY = { ON | OFF}  

login_name
Gibt den Anmeldenamen an, der erstellt wird. Es gibt vier Arten von Anmeldenamen: SQL Server-Anmeldenamen, Windows-Anmeldenamen, Anmeldenamen mit zugeordneten Zertifikaten sowie Anmeldenamen mit zugeordneten asymmetrischen Schlüsseln. Beim Erstellen von Anmeldungen, die zugeordnet werden von einem Windows-Domänenkonto ausführen, müssen Sie den Benutzeranmeldenamen ein Prä-Windows 2000 verwenden, im Format [< DomainName>\< Login_name >]. Können keine UPN im Format login_name@DomainName. ein Beispiel finden Sie unter Beispiel D weiter unten in diesem Thema. SQL Server -authentifizierungsanmeldungen sind vom Typ Sysname und entsprechen den Regeln für Bezeichner und darf keine enthalten eine "\". Windows-Anmeldenamen darf eine '\".

KENNWORT = "Kennwort"
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 Strong Passwords und Kennwortrichtlinie. Beginnend mit SQL Server 2012, gespeicherten Kennwortinformationen wird mithilfe von SHA-512, des Kennworts nach dem Zufallsprinzip gewählter berechnet.

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 sind keine einfachen Anführungszeichen oder Login_name.

KENNWORT =Hashed_password

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

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

HASHED

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

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

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.

ANMELDEINFORMATIONEN =Credential_name

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

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. Anmeldeinformationen kann der Systemadministrator (sa)-Anmeldung zugeordnet werden.

SID = Sid
Wird verwendet, um eine Anmeldung neu zu erstellen. Gilt für SQL Server nur-authentifizierungsanmeldungen, nicht Windows-authentifizierungsanmeldungen. Gibt die SID des neuen SQL Server -authentifizierungsanmeldung. Wenn diese Option nicht verwendet wird, SQL Server automatisch ein SID zugewiesen. Die SID-Struktur hängt die SQL Server Version.

  • SQL Server Anmelde-SID: ein 16-Byte (binary(16)) Literalwert basierend auf einer GUID. Beispiel: SID = 0x14585E90117152449347750164BA00A7.

  • SQL-Datenbank Anmelde-SID: eine SID-Struktur gültig für Azure SQL-Datenbank. Dies ist normalerweise ein 32-Byte (binary(32)) Literalwert bestehend 0x01060000000000640000000000000000 plus 16 Bytes, die eine GUID darstellt. Beispiel: SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

DEFAULT_DATABASE =Datenbank

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

Gibt die Standarddatenbank an, die dem Anmeldenamen zugewiesen werden soll. Die Standarddatenbank wird festgelegt, wenn diese Option nicht enthalten ist, um Master.

DEFAULT_LANGUAGE =Sprache

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

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 | DEAKTIVIERT }

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

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

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

  • Eine nicht-alphanumerische Zeichen, z. B. ein Leerzeichen, _, @, *, ^, %,!, $, # oder &.

WINDOWS

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

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

ZERTIFIKAT Certname

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

Gibt den Namen eines Zertifikats an, das diesem Anmeldenamen zugeordnet werden soll. Dieses Zertifikat muss bereits in der master-Datenbank auftreten.

ASYMMETRISCHE SCHLÜSSEL Asym_key_name

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

Gibt den Namen eines asymmetrischen Schlüssels an, der diesem Anmeldenamen zugeordnet werden soll. Dieser Schlüssel muss bereits in der master-Datenbank auftreten.

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 gesetzt ist Lockout_time zurückgesetzt und CHECK_EXPIRATION auf OFF festgelegt ist.

System_CAPS_ICON_important.jpg Wichtig


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

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 eine Anmeldung aus einem Zertifikat oder asymmetrischen Schlüssel erstellen, nur, wenn das Zertifikat oder den asymmetrischen Schlüssel bereits in der Masterdatenbank vorhanden ist.

Ein Skript zum Übertragen von Anmeldungen, finden Sie unter zum Übertragen von Benutzernamen und Kennwörter zwischen Instanzen von SQL Server 2005 und SQL Server 2008.

Automatisch beim Erstellen eines Anmeldenamens ermöglicht es den neuen Anmeldenamen und erteilt ihm die Serverebene CONNECT SQL Berechtigung.

Informationen zum Entwerfen eines Berechtigungssystems finden Sie unter Getting Started with Database Engine Permissions.

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

Bei einigen Methoden zur verbindungsherstellung mit SQL-Datenbank, z. B. Sqlcmd, muss angefügt der SQL-Datenbank Servernamen, um den Anmeldenamen in der Verbindungszeichenfolge mittels der < Anmeldung>@< Server> Notation. Lautet die Anmeldung also beispielsweise login1 und den vollqualifizierten Namen des der SQL-Datenbank Server servername.database.windows.net, die Benutzername Parameter der Verbindungszeichenfolge muss login1@servername. Da die Gesamtlänge der der Benutzername Parameter beträgt 128 Zeichen Login_name ist 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 und SQL Data Warehouse müssen Sie mit der Masterdatenbank eine Anmeldung verbunden werden.

SQL Server -Regeln erstellen Sie eine SQL Server -authentifizierungsanmeldung im Format < Loginname>@<servername>. Wenn Ihre SQL-Datenbank Server Myazureserver und der Anmeldename myemail@live.com, und Sie Sie den Anmeldenamen als geben müssen myemail@live.com@myazureserver.

In SQL-Datenbank, Anmeldedaten erforderlich, um eine Verbindung zu authentifizieren und Firewallregeln auf Serverebene werden in jeder Datenbank vorübergehend zwischengespeichert. Dieser Cache wird in regelmäßigen Abständen aktualisiert. Führen Sie zum Erzwingen einer Aktualisierung des Authentifizierungscache und stellen Sie sicher, dass eine Datenbank die aktuelle Version der Tabelle Anmeldungen verfügt, DBCC FLUSHAUTHCACHE ( Transact-SQL ).

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

In SQL Server, erfordert ALTER ANY LOGIN Berechtigung auf dem Server oder die Mitgliedschaft in der "securityadmin" festen Serverrolle "".

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.

Wenn die ANMELDEINFORMATIONEN Option verwendet wird, erfordert auch ALTER ANY CREDENTIAL Berechtigung auf dem Server.

Nach dem Erstellen einer Anmeldung, die Anmeldung kann eine Verbindung mit der Datenbankmodul oder SQL-Datenbank aber nur über die Berechtigungen für die öffentlichen Rolle. Ziehen Sie das Ausführen einiger der folgenden Aktivitäten in Betracht.

A. Erstellen einer Anmeldung mit einem Kennwort

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 einer Anmeldung mit einem Kennwort

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.

Gilt für: SQL Server 2008 bis SQL Server 2016.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;  
GO  

C. Erstellen eines Anmeldenamens, der Anmeldeinformationen zugeordnet ist

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

Gilt für: SQL Server 2008 bis SQL Server 2016.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>',   
    CREDENTIAL = <credentialName>;  
GO  

D. Erstellen eines Anmeldenamens aus einem Zertifikat

Das folgende Beispiel erstellt Anmeldename für einen bestimmten Benutzer aus einem Zertifikat in der Masterdatenbank.

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

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

Gilt für: SQL Server 2008 bis SQL Server 2016.
CREATE LOGIN [<domainName>\<login_name>] FROM WINDOWS;  
GO  

F. Erstellen eines Anmeldenamens aus einer SID

Das folgende Beispiel erstellt zuerst eine SQL Server Anmeldenamen für die Authentifizierung und bestimmt die SID des Anmeldenamens.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';  
  
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';  
GO  

Meine Abfrage gibt 0x241C11948AEEB749B0D22646DB1A19F2 als SID zurück. Die Abfrage gibt einen anderen Wert zurück. Die folgenden Anweisungen löschen den Anmeldenamen und erstellen dann erneut die Anmeldung. Verwenden Sie die SID aus der vorherigen Abfrage.

DROP LOGIN TestLogin;  
GO  
  
CREATE LOGIN TestLogin   
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;  
  
SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';  
GO  

G. Erstellen eine SQL Server-authentifizierungsanmeldung mit einem Kennwort

Im folgenden Beispiel wird die Anmeldung Mary7 mit Kennwort A2c3456.

CREATE LOGIN Mary7 WITH PASSWORD = 'A2c3456$#' ;  

H. Mithilfe der Optionen

Im folgenden Beispiel wird die Anmeldung Mary8 mit Kennwort einige optionale Argumente.

CREATE LOGIN Mary8 WITH PASSWORD = 'A2c3456$#' MUST_CHANGE,  
CHECK_EXPIRATION = ON,  
CHECK_POLICY = ON;  

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

Das folgende Beispiel erstellt eine Anmeldung von einem Windows-Domänenkonto mit dem Namen Mary in die Contoso Domäne.

CREATE LOGIN [Contoso\Mary] FROM WINDOWS;  
GO  

Erste Schritte mit Berechtigungen für das Datenbankmodul
Prinzipale ( Datenbankmodul )
Kennwortrichtlinie
ALTER LOGIN ( Transact-SQL )
DROP LOGIN ( Transact-SQL )
EVENTDATA ( Transact-SQL )
Erstellen eines Anmeldenamens

Community-Beiträge

HINZUFÜGEN
Anzeigen: