Freigeben über


CREATE LOGIN (Transact-SQL)

Erstellt eine Anmeldung für SQL Server-, Azure SQL-Datenbank-, Azure SQL-verwaltete Instanz-, Azure Synapse Analytics- oder Analytics Platform System-Datenbanken. Wählen Sie eine der folgenden Registerkarten für die Syntax, Argumente, Anmerkungen, Berechtigungen und Beispiele für eine bestimmte Version aus.

CREATE LOGIN nimmt an Transaktionen teil. Wenn CREATE LOGIN innerhalb einer Transaktion ausgeführt wird, für die dann ein Rollback ausgeführt wird, wird ein Rollback für die Erstellung von Anmeldedaten ausgeführt. Die erstellten Anmeldedaten können erst verwendet werden, nachdem die Transaktion committet wurde, wenn sie innerhalb einer Transaktion ausgeführt werden.

Hinweis

Microsoft Entra ID war zuvor als Azure Active Directory (Azure AD) bekannt.

Weitere Informationen zu Syntaxkonventionen finden Sie unter Transact-SQL-Syntaxkonventionen.

Auswählen eines Produkts

Wählen Sie in der folgenden Zeile den Namen des Produkts aus, an dem Sie interessiert sind. Dann werden nur Informationen zu diesem Produkt angezeigt.

* SQL Server *  

 

SQL Server

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>[ ,... ] ]
    | EXTERNAL PROVIDER
    | CERTIFICATE certname
    | ASYMMETRIC KEY asym_key_name

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

Argumente

login_name

Gibt den Anmeldenamen an, der erstellt wird. Es gibt fünf Arten von Anmeldungen: SQL Server-Anmeldungen, Windows-Anmeldungen, Microsoft Entra-Anmeldungen, zertifikatgeschlüsselte Anmeldungen und asymmetrische, zugeordnete Anmeldeinformationen.

Wenn Sie Anmeldeinformationen erstellen, die einem Windows-Domänenkonto zugeordnet sind, müssen Sie den Anmeldenamen im Format [<domainName>\<login_name>] verwenden. Sie können keinen UPN im Format "login_name@DomainName" verwenden. Ein Beispiel finden Sie weiter unten in diesem Artikel im Beispiel E . Authentifizierungsanmeldungen sind vom Typ "sysname " und müssen den Regeln für Bezeichner entsprechen und keinen umgekehrten Schrägstrich () enthalten. Windows-Anmeldenamen können ' \ '-Zeichen enthalten. Anmeldungen, die auf Active Directory-Benutzern basieren, sind auf Namen von weniger als 21 Zeichen beschränkt.

Bei Verwendung der FROM EXTERNAL PROVIDER-Klausel muss der Anmeldename mit dem Anzeigenamen eines vorhandenen Microsoft Entra-Prinzipals im selben Mandanten übereinstimmen, für den die SQL-Instanz arcfähig ist. Microsoft Entra-Benutzer, Gruppen und Anwendungen können zum Erstellen von Anmeldungen verwendet werden.

PASSWORD ='password'

Gilt nur für SQL Server-Anmeldenamen. Gibt das Kennwort für den Anmeldenamen an, der erstellt wird. Verwenden Sie ein sicheres Kennwort. Weitere Informationen finden Sie unter Sichere Kennwörter und Kennwortrichtlinie. Ab SQL Server 2012 (11.x) werden gespeicherte Kennwortinformationen mithilfe der SHA-512-Komponente des mit Salt verschlüsselten Kennworts berechnet.

Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. Kennwörter sollten immer mindestens acht 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 einzelnen Anführungszeichen oder die 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 ist, wird die als Kennwort eingegebene Zeichenfolge vor dem Speichern in der Datenbank hashed. Diese Option sollte nur verwendet werden, um Datenbanken von einem Server auf einen anderen zu migrieren. Verwenden Sie nicht die HASHED-Option, um neue Anmeldungen zu erstellen. Die OPTION HASHED kann nicht mit Hashes verwendet werden, die von SQL 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.

ANMELDEINFORMATIONEN =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. Eine Anmeldeinformation kann nicht der Systemadministratoranmeldung (sa) zugeordnet werden.

SID = sid

Wird verwendet, um eine Anmeldung neu zu erstellen. Gilt nur für Anmeldenamen für die SQL Server-Authentifizierung, nicht für Anmeldenamen für die Windows-Authentifizierung. Gibt die SID des neuen Anmeldenamens für die SQL Server-Authentifizierung an. Wenn diese Option nicht verwendet wird, weist SQL Server automatisch eine SID zu. Die SID-Struktur hängt von der SQL Server-Version ab. SID des Anmeldenamens für SQL Server: ein 16-Byte-Literalwert (binary(16) ) basierend auf einer GUID. Beispiel: SID = 0x14585E90117152449347750164BA00A7.

DEFAULT_DATABASE =Datenbank

Gibt die Standarddatenbank an, die dem Anmeldenamen zugewiesen werden soll. Wenn diese Option nicht enthalten ist, wird die Standarddatenbank auf master.

DEFAULT_LANGUAGE =sprache

Gibt die Standardsprache an, die dem Anmeldenamen zugewiesen werden soll. Wenn diese Option nicht enthalten ist, wird die Standardsprache auf die aktuelle Standardsprache des Servers 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).
  • Eines der nichtalphanumerischen Zeichen, z. B. ein Leerzeichen, _, @, *, ^, %, !, $, #oder &.

WINDOWS

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

FROM EXTERNAL PROVIDER

Gibt an, dass die Anmeldung einem Microsoft Entra-Prinzipal zugeordnet ist. Diese Option ist für Arc-fähige SQL Server 2022 und höhere Versionen verfügbar. Weitere Informationen finden Sie unter Microsoft Entra-Authentifizierung für SQL Server

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 Vorbereiten von Kennwörtern wird nur unterstützt, wenn Sie SQL Server-Anmeldungen erstellen.
  • Wenn MUST_CHANGE angegeben, müssen CHECK_EXPIRATION und CHECK_POLICY auf ON. Andernfalls erzeugt die Anweisung einen Fehler.
  • Eine Kombination von CHECK_POLICY = OFF und CHECK_EXPIRATION = ON wird nicht unterstützt.
  • Wenn CHECK_POLICY auf OFFfestgelegt ist, wird lockout_time zurückgesetzt und CHECK_EXPIRATION auf OFF.

Wichtig

CHECK_EXPIRATION und CHECK_POLICY werden nur unter Windows Server 2003 und höheren Versionen 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 zum Herstellen einer Verbindung mit SQL Server verwendet werden. Sie können eine Anmeldung aus einem Zertifikat oder asymmetrischem Schlüssel nur erstellen, wenn das Zertifikat oder der asymmetrische Schlüssel bereits vorhanden masterist.
  • Ein Skript zum Übertragen von Anmeldenamen finden unter Übertragen von Benutzernamen und Kennwörtern zwischen Instanzen von SQL Server.
  • Durch das Erstellen eines Anmeldenamens wird der neue Anmeldename automatisch aktiviert, und diesem Anmeldenamen wird die CONNECT SQL-Berechtigung auf Serverebene gewährt.
  • Der Authentifizierungsmodus muss mit dem Anmeldetyp übereinstimmen, damit der Zugriff gewährt wird.
  • Informationen zum Entwerfen eines Berechtigungssystems finden Sie unter Getting Started with Database Engine Permissions.

Berechtigungen

  • Nur Benutzer mit ALTER ANY LOGIN-Berechtigung auf dem Server oder einer Mitgliedschaft bei der festen Serverrolle securityadmin können Anmeldenamen erstellen. Weitere Informationen finden Sie unter Rollen auf Serverebene und unter ALTER SERVER ROLE.
  • Falls die Option CREDENTIAL verwendet wird, ist auch die ALTER ANY CREDENTIAL-Berechtigung auf dem Server erforderlich.

Berechtigungen für SQL Server 2022 und höher

Erfordert create login permission on the server or membership in the ##MS_LoginManager## fixed server role.

Nach dem Erstellen eines Anmeldenamens

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

  • Erstellen Sie zum Herstellen einer Verbindung mit einer Datenbank einen Datenbankbenutzer für den Anmeldenamen. Weitere Informationen finden Sie unter CREATE USER (Transact-SQL).
  • Erstellen sie eine benutzerdefinierte Serverrolle mit CREATE SERVER ROLE. Wird verwendet ALTER SERVER ROLE ... ADD MEMBER , um die neue Anmeldung zur benutzerdefinierten Serverrolle hinzuzufügen. Weitere Informationen finden Sie unter CREATE SERVER ROLE und unter ALTER SERVER ROLE.
  • Dient sp_addsrvrolemember zum Hinzufügen der Anmeldung zu einer festen Serverrolle. Weitere Informationen finden Sie unter Rollen auf Serverebene und unter sp_addsrvrolemember.
  • Gewähren Sie mit der GRANT-Anweisung Berechtigungen auf Serverebene für den neuen Anmeldenamen oder für eine Rolle, die den Anmeldenamen enthält. Weitere Informationen finden Sie unter GRANT.

Beispiele

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, das geändert werden muss

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 (10.0.x) und höhere Versionen

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>'
    MUST_CHANGE, CHECK_EXPIRATION = ON;
GO

Hinweis

Die Option MUST_CHANGE kann nicht verwendet werden, wenn CHECK_EXPIRATION auf OFF festgelegt ist.

C. Erstellen einer Anmeldung, die einer Anmeldeinformation 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 (10.0.x) und höhere Versionen

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

D: Erstellen einer Anmeldung aus einem Zertifikat

Im folgenden Beispiel wird die Anmeldung für einen bestimmten Benutzer aus einem Zertifikat in mastererstellt.

Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen

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 einer Anmeldung aus einem Windows-Domänenkonto

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

Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen

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

F. Erstellen einer Anmeldung über eine SID

Im folgenden Beispiel wird ein Anmeldename für die SQL Server-Authentifizierung erstellt und die SID des Anmeldenamens festgelegt.

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

Die Abfrage hier 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 einer Anmeldung mit mehreren Argumenten

Im folgenden Beispiel sehen Sie, wie Sie mehrere Argumente mit Kommas zwischen den einzelnen Argumenten als eine Zeichenfolge verbinden.

CREATE LOGIN [MyUser]
WITH PASSWORD = 'MyPassword',
DEFAULT_DATABASE = MyDatabase,
CHECK_POLICY = OFF,
CHECK_EXPIRATION = OFF ;

H. Erstellen einer SQL-Anmeldung mit Hashkennwort

Das folgende Beispiel zeigt, wie SQL-Anmeldungen mit dem gleichen Kennwort wie vorhandene Anmeldungen in einem Migrationsszenario erstellt werden. Der erste Schritt besteht im Abrufen des Kennworthashs aus vorhandenen Anmeldungen auf dem Quelldatenbankserver. Anschließend wird derselbe Hash verwendet, um die Anmeldung auf einem neuen Datenbankserver zu erstellen. Dadurch erhält die neue Anmeldung das gleiche Kennwort, das auf dem alten Server verwendet wurde.

-- run this to retrieve the password hash for an individual Login:
SELECT LOGINPROPERTY('Andreas','PASSWORDHASH') AS password_hash;
-- as an alternative, the catalog view sys.sql_logins can be used to retrieve the password hashes for multiple accounts at once. (This could be used to create a dynamic sql statemnt from the result set)
SELECT name, password_hash
FROM sys.sql_logins
  WHERE
    principal_id > 1    -- excluding sa
    AND
    name NOT LIKE '##MS_%##' -- excluding special MS system accounts
-- create the new SQL Login on the new database server using the hash of the source server
CREATE LOGIN Andreas
  WITH PASSWORD = 0x02000A1A89CD6C6E4C8B30A282354C8EA0860719D5D3AD05E0CAE1952A1C6107A4ED26BEBA2A13B12FAB5093B3CC2A1055910CC0F4B9686A358604E99BB9933C75B4EA48FDEA HASHED;

I. Erstellen einer Anmeldung für einen Microsoft Entra-Benutzer

Im folgenden Beispiel wird eine Anmeldung für das Microsoft Entra-Konto joe@contoso.onmicrosoft.com erstellt, das im Microsoft Entra-Mandanten namens contoso vorhanden ist.

CREATE LOGIN [joe@contoso.onmicrosoft.com] FROM EXTERNAL PROVIDER

GO

J. Erstellen einer Anmeldung für ein Microsoft Entra-Verbundkonto

Im folgenden Beispiel wird eine Anmeldung für ein Microsoft Entra-Verbundkonto bob@contoso.com erstellt, das in einem Mandanten namens "contoso" vorhanden ist. Der Benutzer „Bob“ kann auch ein Gastbenutzer sein.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO

K. Erstellen einer Anmeldung für eine Microsoft Entra-Gruppe

Im folgenden Beispiel wird eine Anmeldung für die Mygroup der Microsoft Entra-Gruppe erstellt, die im Mandanten contoso vorhanden ist.

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

L. Erstellen einer Anmeldung für eine Microsoft Entra-Anwendung

Im folgenden Beispiel wird eine Anmeldung für die Microsoft Entra-Anwendung myapp erstellt, die im Mandanten contoso vorhanden ist.

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

* Azure SQL Datenbank*  

 

SQL-Datenbank

Weitere Informationen zur Konnektivität und Autorisierung für Azure SQL-Datenbank finden Sie unter:

Syntax

-- Syntax for Azure SQL Database
CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

Argumente

login_name

Hinweis

Microsoft Entra-Serverprinzipale (Anmeldungen) befinden sich derzeit in der öffentlichen Vorschau für Azure SQL-Datenbank.

Bei Verwendung mit der Klausel FROM EXTERNAL PROVIDER legt die Anmeldung den Microsoft Entra-Prinzipal fest, bei dem es sich um einen Microsoft Entra-Benutzer, eine -Gruppe oder -Anwendung handelt. Andernfalls stellt der Anmeldename den Namen der erstellten SQL Server-Anmeldung dar.

Microsoft Entra-Benutzer und Dienstprinzipale, die Mitglieder von mehr als 2048 Microsoft Entra-Sicherheitsgruppen sind, werden nicht unterstützt, sich bei der Datenbank in SQL-Datenbank, SQL-verwaltete Instanz oder Azure Synapse anzumelden.

FROM EXTERNAL PROVIDER

Legt fest, dass der Anmeldename zur Microsoft-Authentifizierung dient.

WITH OBJECT_ID = 'objectid'

Gibt die Microsoft Entra-Objekt-ID an. Wenn der OBJECT_ID Wert angegeben ist, muss die login_name nicht mit dem Microsoft Entra-Anzeigenamen übereinstimmen. Die login_name muss ein eindeutiger Name in der sys.server_principals Ansicht sein und alle anderen sysname Einschränkungen einhalten. Weitere Informationen zur Verwendung der WITH OBJECT_ID Option finden Sie unter Microsoft Entra-Anmeldungen und Benutzer mit nicht eindeutigen Anzeigenamen.

Hinweis

Wenn der Anzeigename des Dienstprinzipals kein Duplikat ist, sollte die standardmäßige Anweisung CREATE LOGIN oder CREATE USER verwendet werden. Bei der WITH OBJECT_ID Erweiterung handelt es sich um ein Problembehandlungsreparaturelement, das für die Verwendung mit Nicht-Dienstprinzipalen implementiert wird. Die Verwendung mit einem eindeutigen Dienstprinzipal wird nicht empfohlen. Die Verwendung der WITH OBJECT_ID-Erweiterung für einen Dienstprinzipal ohne Hinzufügen eines Suffixes wird erfolgreich ausgeführt, aber es ist nicht offensichtlich, für welchen Dienstprinzipal die Anmeldung oder der Benutzer erstellt wurde. Es wird empfohlen, einen Alias mit einem Suffix zu erstellen, um den Dienstprinzipal eindeutig zu identifizieren. Die WITH OBJECT_ID-Erweiterung wird für SQL Server nicht unterstützt.

PASSWORD ='password'

Gibt das Kennwort für den SQL-Anmeldenamen an, der erstellt wird. Verwenden Sie ein sicheres Kennwort. Weitere Informationen finden Sie unter Sichere Kennwörter und Kennwortrichtlinie. Ab SQL Server 2012 (11.x) werden gespeicherte Kennwortinformationen mithilfe der SHA-512-Komponente des mit Salt verschlüsselten Kennworts berechnet.

Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. Kennwörter sollten immer mindestens acht 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 einzelnen Anführungszeichen oder die login_name enthalten.

SID = sid

Wird verwendet, um eine Anmeldung neu zu erstellen. Gilt nur für Anmeldenamen für die SQL Server-Authentifizierung, nicht für Anmeldenamen für die Windows-Authentifizierung. Gibt die SID des neuen Anmeldenamens für die SQL Server-Authentifizierung an. Wenn diese Option nicht verwendet wird, weist SQL Server automatisch eine SID zu. Die SID-Struktur hängt von der SQL Server-Version ab. Bei SQL-Datenbank ist dies normalerweise ein 32-Byte-Literalwert (binary(32) ) bestehend aus 0x01060000000000640000000000000000 plus 16 Byte, die eine GUID darstellen. Beispiel: SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Bemerkungen

  • Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.
  • Durch das Erstellen eines Anmeldenamens wird der neue Anmeldename automatisch aktiviert, und diesem Anmeldenamen wird die CONNECT SQL-Berechtigung auf Serverebene gewährt.

Wichtig

Unter Verwalten von Anmeldungen in Azure SQL-Datenbank finden Sie weitere Informationen zum Arbeiten mit Anmeldungen und Benutzern in Azure SQL-Datenbank.

Anmeldename

SQL-Datenbank Anmeldungen

Die CREATE LOGIN-Anweisung muss die einzige Anweisung in einem Batch sein.

In einigen Methoden zum Herstellen einer Verbindung mit SQL-Datenbank, z.B. sqlcmd, müssen Sie den Servernamen von SQL-Datenbank mit der <login>@<server>-Notation an den Anmeldenamen in der Verbindungszeichenfolge anfügen. Wenn Ihr Anmeldename beispielsweise login1 und der vollqualifizierte Name des Servers von SQL-Datenbank servername.database.windows.net lautet, sollte der Parameter username 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 müssen Sie mit der master Datenbank mit den entsprechenden Berechtigungen verbunden sein, um eine Anmeldung zu erstellen. Weitere Informationen finden Sie unter Erstellen zusätzlicher Anmeldungen und Benutzer mit Verwaltungsberechtigungen.

MITHILFE von SQL Server-Regeln können Sie eine SQL Server-Authentifizierungsanmeldung im Format <"loginname@<servername>>" erstellen. Wenn der SQL Datenbank-Servername myazureserver und der Anmeldename myemail@contoso.com lauten, müssen Sie den Anmeldenamen als myemail@contoso.com@myazureserver bereitstellen.

In SQL-Datenbank werden Anmeldedaten, die für die Authentifizierung einer Verbindung und für Firewallregeln auf Serverebene erforderlich sind, über einen gewissen Zeitraum in jeder Datenbank gespeichert. Dieser Cache wird regelmäßig aktualisiert. Führen Sie DBCC FLUSHAUTHCACHE aus, um eine Aktualisierung des Authentifizierungscache zu erzwingen und sicherzustellen, dass eine Datenbank über die aktuelle Version der Tabelle mit Anmeldenamen verfügt.

Berechtigungen

Nur die Prinzipalanmeldung auf Serverebene (erstellt durch den Bereitstellungsprozess) oder Member der Datenbankrolle in der loginmanager master Datenbank können neue Anmeldungen erstellen. Weitere Informationen finden Sie unter Erstellen zusätzlicher Anmeldungen und Benutzer mit Verwaltungsberechtigungen.

Beispiele

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. Stellen Sie eine Verbindung mit den master Datenbanken her, und verwenden Sie dann das folgende Codebeispiel.

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

B. Erstellen einer Anmeldung über eine SID

Im folgenden Beispiel wird ein Anmeldename für die SQL Server-Authentifizierung erstellt und die SID des Anmeldenamens festgelegt. Stellen Sie eine Verbindung mit den master Datenbanken her, und verwenden Sie dann das folgende Codebeispiel.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Die Abfrage hier 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

C. Erstellen einer Anmeldung mit einem Microsoft Entra-Konto

In diesem Beispiel wird eine Anmeldung auf dem logischen Azure SQL-Server mithilfe der Anmeldeinformationen eines Benutzers bob@contoso.com erstellt, der in der Microsoft Entra-Domäne vorhanden contosoist. Stellen Sie eine Verbindung mit den master Datenbanken her, und verwenden Sie dann das folgende Codebeispiel.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER;
GO

D: Erstellen einer Anmeldung mit einem Alias mithilfe der Objekt-ID

Sie können einen Alias für Ihre login_name erstellen, indem Sie die Objekt-ID des Microsoft Entra-Dienstprinzipals oder der Gruppe angeben. Stellen Sie eine Verbindung mit den master Datenbanken her, und verwenden Sie dann das folgende Codebeispiel.

CREATE LOGIN [myapp4466e] FROM EXTERNAL PROVIDER 
  WITH OBJECT_ID='4466e2f8-0fea-4c61-a470-xxxxxxxxxxxx';

Weitere Informationen zum Abrufen der Objekt-ID eines Dienstprinzipals finden Sie unter Dienstprinzipalobjekte in Microsoft Entra ID.

* Azure SQL
Verwaltete Instanz *

 

Verwaltete Azure SQL-Instanz

Syntax

-- Syntax for Azure SQL Managed Instance
CREATE LOGIN login_name [FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] ] { WITH <option_list> [,..]}

<option_list> ::=
    PASSWORD = {'password'}
    | SID = sid
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language

Argumente

login_name

Bei Verwendung mit der Klausel FROM EXTERNAL PROVIDER legt die Anmeldung den Microsoft Entra-Prinzipal fest, bei dem es sich um einen Microsoft Entra-Benutzer, eine -Gruppe oder -Anwendung handelt. Andernfalls stellt der Anmeldename den Namen der erstellten SQL Server-Anmeldung dar.

Microsoft Entra-Benutzer und Dienstprinzipale, die Mitglieder von mehr als 2048 Microsoft Entra-Sicherheitsgruppen sind, werden nicht unterstützt, um sich bei Datenbanken in Azure SQL-Datenbank, Azure SQL verwaltete Instanz oder Azure Synapse anzumelden.

FROM EXTERNAL PROVIDER

Legt fest, dass der Anmeldename zur Microsoft-Authentifizierung dient.

WITH OBJECT_ID = 'objectid'

Gibt die Microsoft Entra-Objekt-ID an. Wenn dies OBJECT_ID angegeben ist, kann die login_name ein benutzerdefinierter Alias sein, der aus dem ursprünglichen Prinzipalanzeigenamen mit einem angefügten Suffix gebildet wird. Die login_name muss ein eindeutiger Name in der sys.server_principals Ansicht sein und alle anderen sysname Einschränkungen einhalten. Weitere Informationen zur Verwendung der WITH OBJECT_ID Option finden Sie unter Microsoft Entra-Anmeldungen und Benutzer mit nicht eindeutigen Anzeigenamen.

Hinweis

Wenn der Anzeigename des Dienstprinzipals kein Duplikat ist, sollte die standardmäßige Anweisung CREATE LOGIN oder CREATE USER verwendet werden. Die WITH OBJECT_ID-Erweiterung befindet sich in der öffentlichen Vorschau und ist ein Reparaturelement der Problembehandlung, das für die Verwendung mit nicht eindeutigen Dienstprinzipalen implementiert wurde. Die Verwendung mit einem eindeutigen Dienstprinzipal ist nicht erforderlich. Die Verwendung der WITH OBJECT_ID-Erweiterung für einen Dienstprinzipal ohne Hinzufügen eines Suffixes wird erfolgreich ausgeführt, aber es ist nicht offensichtlich, für welchen Dienstprinzipal die Anmeldung oder der Benutzer erstellt wurde. Es wird empfohlen, einen Alias mit einem Suffix zu erstellen, um den Dienstprinzipal eindeutig zu identifizieren. Die WITH OBJECT_ID-Erweiterung wird für SQL Server nicht unterstützt.

PASSWORD = 'password'

Gibt das Kennwort für den SQL-Anmeldenamen an, der erstellt wird. Verwenden Sie ein sicheres Kennwort. Weitere Informationen finden Sie unter Sichere Kennwörter und Kennwortrichtlinie. Ab SQL Server 2012 (11.x) werden gespeicherte Kennwortinformationen mithilfe der SHA-512-Komponente des mit Salt verschlüsselten Kennworts berechnet.

Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. Kennwörter sollten immer mindestens 10 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 einzelnen Anführungszeichen oder die login_name enthalten.

SID = sid

Wird verwendet, um eine Anmeldung neu zu erstellen. Gilt nur für SQL Server-Authentifizierungsanmeldungen. Gibt die SID des neuen Anmeldenamens für die SQL Server-Authentifizierung an. Wenn diese Option nicht verwendet wird, weist SQL Server automatisch eine SID zu. Die SID-Struktur hängt von der SQL Server-Version ab. Bei SQL-Datenbank ist dies normalerweise ein 32-Byte-Literalwert (binary(32) ) bestehend aus 0x01060000000000640000000000000000 plus 16 Byte, die eine GUID darstellen. Beispiel: SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Hinweise

  • Die FROM EXTERNAL PROVIDER Syntax erstellt Prinzipale auf Serverebene, die Microsoft Entra-Konten zugeordnet sind.

  • Wann FROM EXTERNAL PROVIDER angegeben:

    • Die login_name muss ein vorhandenes Microsoft Entra-Konto (Benutzer, Gruppe oder Anwendung) darstellen, auf das über die aktuelle Azure SQL-verwaltete Instanz in der Microsoft Entra-ID zugegriffen werden kann. Für Microsoft Entra-Prinzipale erfordert die CREATE LOGIN-Syntax Folgendes:

      • UserPrincipalName des Microsoft Entra-Objekts für Microsoft Entra-Benutzer.

      • DisplayName des Microsoft Entra-Objekts für Microsoft Entra-Gruppen und -Anwendungen.

    • Die KENNWORToption kann nicht verwendet werden.

  • Wenn die FROM EXTERNAL PROVIDER Klausel nicht angegeben wird, wird standardmäßig eine reguläre SQL-Anmeldung erstellt.

  • Microsoft Entra-Anmeldungen sind sichtbar in sys.server_principals, wobei der Spaltentypwert auf E EXTERNAL_LOGIN für Anmeldedaten festgelegt ist type_desc , die Microsoft Entra-Benutzern zugeordnet sind, oder Spaltenwert, der auf X EXTERNAL_GROUP für Anmeldedaten festgelegt isttype_desc, die Microsoft Entra-Gruppen zugeordnet sind.

  • Ein Skript zum Übertragen von Anmeldenamen finden unter Übertragen von Benutzernamen und Kennwörtern zwischen Instanzen von SQL Server.

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

Wichtig

Unter Verwalten von Anmeldungen in Azure SQL-Datenbank finden Sie weitere Informationen zum Arbeiten mit Anmeldungen und Benutzern in Azure SQL-Datenbank.

Anmeldenamen und Berechtigungen

Nur die Prinzipalanmeldung auf Serverebene (erstellt durch den Bereitstellungsprozess) oder Member der securityadmin Datenbankrolle in sysadmin der master Datenbank können neue Anmeldungen erstellen. Weitere Informationen finden Sie unter Rollen auf Serverebene und unter ALTER SERVER ROLE.

Standardmäßig ist die Standardberechtigung, die einer neu erstellten Microsoft Entra-Anmeldung master erteilt wurde: CONNECT SQL und VIEW ANY DATABASE.

SQL-verwaltete Instanz Anmeldungen

  • Erfordert eine ALTER ANY LOGIN-Berechtigung auf dem Server oder eine Mitgliedschaft bei einer der festen Serverrollen securityadmin oder sysadmin. Nur ein Microsoft Entra-Konto mit ALTER ANY LOGIN-Berechtigung auf dem Server oder der Mitgliedschaft in einer dieser Rollen kann den Befehl "Erstellen" ausführen.

  • Wenn es sich bei der Anmeldung um einen SQL-Prinzipal handelt, können nur Anmeldungen, die Teil der sysadmin Rolle sind, den Befehl "Erstellen" verwenden, um Anmeldeinformationen für ein Microsoft Entra-Konto zu erstellen.

  • Muss Mitglied desselben Microsoft Entra-Mandanten wie der Azure SQL-verwaltete Instanz sein.

Nach dem Erstellen eines Anmeldenamens

Nach dem Erstellen einer Anmeldung kann diese zum Herstellen einer Verbindung mit einer verwalteten Instanz verwendet werden. Der Anmeldung werden jedoch nur die Berechtigungen gewährt, die der Rolle public zugewiesen sind. Ziehen Sie die Ausführung einiger der folgenden Aktivitäten in Betracht.

  • Informationen zum Erstellen eines Benutzers aus einer Microsoft Entra-Anmeldung finden Sie unter CREATE USER.

  • Um einem Benutzer in einer Datenbank Berechtigungen zu erteilen, verwenden Sie die ALTER SERVER ROLE ... ADD MEMBER Anweisung, um den Benutzer zu einer der integrierten Datenbankrollen oder einer benutzerdefinierten Rolle hinzuzufügen, oder erteilen Sie dem Benutzer berechtigungen direkt mithilfe der GRANT-Anweisung . Weitere Informationen finden Sie unter Benutzer ohne Administratorrechte und in den Artikeln zu den Anweisungen Zusätzliche Administratorrollen auf Serverebene, ALTER SERVER ROLE- und GRANT-Anweisung.

  • Um serverweite Berechtigungen zu erteilen, erstellen Sie einen Datenbankbenutzer in der master Datenbank, und verwenden Sie die ALTER SERVER ROLE ... ADD MEMBER Anweisung, um den Benutzer zu einer der Administrativen Serverrollen hinzuzufügen. Weitere Informationen finden Sie unter Rollen auf Serverebene, ALTER SERVER ROLE und unter Serverrollen.

    • Verwenden Sie den folgenden Befehl, um die sysadmin Rolle zu einer Microsoft Entra-Anmeldung hinzuzufügen: ALTER SERVER ROLE sysadmin ADD MEMBER [MS_Entra_login]
  • Gewähren Sie mit der GRANT-Anweisung Berechtigungen auf Serverebene für den neuen Anmeldenamen oder für eine Rolle, die den Anmeldenamen enthält. Weitere Informationen finden Sie unter GRANT.

Begrenzungen

  • Das Festlegen einer Microsoft Entra-Anmeldung, die einer Microsoft Entra-Gruppe zugeordnet ist, da der Datenbankbesitzer nicht unterstützt wird.

  • Der Identitätswechsel von Microsoft Entra-Anmeldungen mithilfe anderer Microsoft Entra-Prinzipale wird unterstützt, z. B. die EXECUTE AS-Klausel .

  • Nur Serverprinzipale (Anmeldungen), die Teil der sysadmin Rolle sind, können die folgenden Vorgänge für Microsoft Entra-Prinzipale ausführen:

    • EXECUTE AS USER
    • EXECUTE AS LOGIN
  • Externe Benutzer (Gastbenutzer), die aus einem anderen Microsoft Entra-Verzeichnis importiert wurden, können nicht direkt als Microsoft Entra-Administrator für SQL verwaltete Instanz mithilfe der Azure-Portal konfiguriert werden. Fügen Sie stattdessen externem Benutzer zu einer rollenzuweisungsfähigen Gruppe hinzu, und konfigurieren Sie die Gruppe als Instanzadministrator. Sie können PowerShell oder die Azure CLI verwenden, um Einzelgastbenutzer als Instanzadministrator festzulegen.

  • Anmeldungen werden nicht in die sekundäre Instanz in einer Failovergruppe repliziert. Anmeldungen werden in der Datenbank gespeichert, bei der master es sich um eine Systemdatenbank handelt und als solche nicht georepliziert wird. Um dies zu lösen, müssen Anmeldungen mit derselben SID in der sekundären Instanz erstellt werden.

-- Code to create login on the secondary instance
CREATE LOGIN foo WITH PASSWORD = '<enterStrongPasswordHere>', SID = <login_sid>;

Beispiele

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 über eine SID

Im folgenden Beispiel wird ein Anmeldename für die SQL Server-Authentifizierung erstellt und die SID des Anmeldenamens festgelegt.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Die Abfrage hier 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

C. Erstellen einer Anmeldung für einen Microsoft Entra-Benutzer

Im folgenden Beispiel wird eine Anmeldung für das Microsoft Entra-Konto joe@contoso.onmicrosoft.com erstellt, das im Mandanten " contoso" vorhanden ist.

CREATE LOGIN [joe@contoso.onmicrosoft.com] FROM EXTERNAL PROVIDER

GO

D: Erstellen einer Anmeldung für ein Microsoft Entra-Verbundkonto

Im folgenden Beispiel wird eine Anmeldung für ein Microsoft Entra-Verbundkonto bob@contoso.com erstellt, das in einem Mandanten namens "contoso" vorhanden ist. Der Benutzer „Bob“ kann auch ein Gastbenutzer sein.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO

E. Erstellen einer Anmeldung für eine Microsoft Entra-Gruppe

Im folgenden Beispiel wird eine Anmeldung für die Mygroup der Microsoft Entra-Gruppe erstellt, die im Mandanten contoso vorhanden ist.

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

F. Erstellen einer Anmeldung für eine Microsoft Entra-Anwendung

Im folgenden Beispiel wird eine Anmeldung für die Microsoft Entra-Anwendung myapp erstellt, die im Mandanten contoso vorhanden ist.

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

G. Überprüfen neu hinzugefügter Anmeldenamen

Führen Sie den folgenden T-SQL-Befehl aus, um neu hinzugefügte Anmeldenamen zu überprüfen:

SELECT *
FROM sys.server_principals;
GO

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Syntax

-- Syntax for Azure Synapse Analytics
CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

Argumente

Hinweis

Microsoft Entra-Serverprinzipale (Anmeldungen) befinden sich derzeit in der Vorschau.

Bei Verwendung mit der Klausel FROM EXTERNAL PROVIDER legt die Anmeldung den Microsoft Entra-Prinzipal fest, bei dem es sich um einen Microsoft Entra-Benutzer, eine -Gruppe oder -Anwendung handelt. Andernfalls stellt der Anmeldename den Namen der erstellten SQL Server-Anmeldung dar.

Microsoft-Benutzer und Dienstprinzipale (Microsoft Entra-Anwendungen), die Mitglieder von mehr als 2048 Microsoft Entra-Sicherheitsgruppen sind, werden nicht unterstützt, um sich bei der Datenbank in SQL-Datenbank, SQL-verwaltete Instanz oder Azure Synapse anzumelden.

FROM EXTERNAL PROVIDER

Legt fest, dass der Anmeldename zur Microsoft-Authentifizierung dient.

login_name

Gibt den Anmeldenamen an, der erstellt wird. SQL Analytics in Azure Synapse unterstützt nur SQL-Anmeldungen. Verwenden Sie die CREATE USER-Anweisung, um Konten für Microsoft Entra-Benutzer zu erstellen.

PASSWORD ='password'

Gibt das Kennwort für den SQL-Anmeldenamen an, der erstellt wird. Verwenden Sie ein sicheres Kennwort. Weitere Informationen finden Sie unter Sichere Kennwörter und Kennwortrichtlinie. Ab SQL Server 2012 (11.x) werden gespeicherte Kennwortinformationen mithilfe der SHA-512-Komponente des mit Salt verschlüsselten Kennworts berechnet.

Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. Kennwörter sollten immer mindestens acht 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 einzelnen Anführungszeichen oder die login_name enthalten.

SID = sid

Wird verwendet, um eine Anmeldung neu zu erstellen. Gilt nur für Anmeldenamen für die SQL Server-Authentifizierung, nicht für Anmeldenamen für die Windows-Authentifizierung. Gibt die SID des neuen Anmeldenamens für die SQL Server-Authentifizierung an. Wenn diese Option nicht verwendet wird, weist SQL Server automatisch eine SID zu. Die SID-Struktur hängt von der SQL Server-Version ab. Bei SQL Analytics ist dies ein 32-Byte-Literalwert (binary(32) ), bestehend aus 0x01060000000000640000000000000000 plus 16 Bytes, die eine GUID darstellen. Beispiel: SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7.

Bemerkungen

Anmeldungen

Die CREATE LOGIN-Anweisung muss die einzige Anweisung in einem Batch sein.

Beim Herstellen einer Verbindung mit Azure Synapse mithilfe von Tools wie z. B. sqlcmd müssen Sie den SQL Analytics-Servernamen mit der Notation <login>@<server> an den Anmeldenamen in der Verbindungszeichenfolge anfügen. Wenn Ihr Anmeldename beispielsweise login1 und der vollqualifizierte Name des SQL Analytics-Servers servername.database.windows.net lautet, sollte der Parameter username 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.

Zum Erstellen einer Anmeldung müssen Sie mit der master Datenbank verbunden sein.

MITHILFE von SQL Server-Regeln können Sie eine SQL Server-Authentifizierungsanmeldung im Format <"loginname@<servername>>" erstellen. Wenn der SQL Datenbank-Servername myazureserver und der Anmeldename myemail@contoso.com lauten, müssen Sie den Anmeldenamen als myemail@contoso.com@myazureserver bereitstellen.

Anmeldedaten, die für die Authentifizierung einer Verbindung und Firewallregeln auf Serverebene erforderlich sind, werden vorübergehend in jeder Datenbank gespeichert. Dieser Cache wird regelmäßig aktualisiert. Führen Sie DBCC FLUSHAUTHCACHE aus, um eine Aktualisierung des Authentifizierungscache zu erzwingen und sicherzustellen, dass eine Datenbank über die aktuelle Version der Tabelle mit Anmeldenamen verfügt.

Weitere Informationen zu Anmeldungen finden Sie unter Verwalten von Datenbanken und Anmeldungen.

Berechtigungen

Nur die Prinzipalanmeldung auf Serverebene (erstellt durch den Bereitstellungsprozess) oder Member der Datenbankrolle in der loginmanager master Datenbank können neue Anmeldungen erstellen. Weitere Informationen finden Sie unter Rollen auf Serverebene und unter ALTER SERVER ROLE.

Nach dem Erstellen eines Anmeldenamens

Nach dem Erstellen einer Anmeldung kann diese eine Verbindung mit Azure Synapse herstellen, verfügt jedoch nur über die der Rolle public erteilten Berechtigungen. Ziehen Sie die Ausführung einiger der folgenden Aktivitäten in Betracht.

  • Erstellen Sie zum Herstellen einer Verbindung mit einer Datenbank einen Datenbankbenutzer für den Anmeldenamen. Weitere Informationen finden Sie unter CREATE USER (Transact-SQL).

  • Um einem Benutzer in einer Datenbank Berechtigungen zu erteilen, verwenden Sie die ALTER SERVER ROLE ... ADD MEMBER Anweisung, um den Benutzer zu einer der integrierten Datenbankrollen oder einer benutzerdefinierten Rolle hinzuzufügen, oder erteilen Sie dem Benutzer berechtigungen direkt mithilfe der GRANT-Anweisung . Weitere Informationen finden Sie unter Benutzer ohne Administratorrechte und in den Artikeln zu den Anweisungen Zusätzliche Administratorrollen auf Serverebene, ALTER SERVER ROLE- und GRANT-Anweisung.

  • Um serverweite Berechtigungen zu erteilen, erstellen Sie einen Datenbankbenutzer in der master Datenbank, und verwenden Sie die ALTER SERVER ROLE ... ADD MEMBER Anweisung, um den Benutzer zu einer der Administrativen Serverrollen hinzuzufügen. Weitere Informationen finden Sie unter Rollen auf Serverebene, ALTER SERVER ROLE und unter Serverrollen.

  • Gewähren Sie mit der GRANT-Anweisung Berechtigungen auf Serverebene für den neuen Anmeldenamen oder für eine Rolle, die den Anmeldenamen enthält. Weitere Informationen finden Sie unter GRANT.

Beispiele

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 über eine SID

Im folgenden Beispiel wird ein Anmeldename für die SQL Server-Authentifizierung erstellt und die SID des Anmeldenamens festgelegt.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

Die Abfrage hier 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

* Analytics
Platform System (PDW) *

 

Analyseplattformsystem

Syntax

-- Syntax for Analytics Platform System
CREATE LOGIN loginName { WITH <option_list1> | FROM WINDOWS }

<option_list1> ::=
    PASSWORD = { 'password' } [ MUST_CHANGE ]
    [ , <option_list> [ ,... ] ]

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

Argumente

login_name

Gibt den Anmeldenamen an, der erstellt wird. Es gibt vier Arten von Anmeldenamen: SQL Server-Anmeldungen, Windows-Anmeldenamen, Anmeldenamen mit zugeordneten Zertifikaten sowie Anmeldenamen mit zugeordneten asymmetrischen Schlüsseln. Wenn Sie Anmeldeinformationen erstellen, die einem Windows-Domänenkonto zugeordnet sind, müssen Sie den Anmeldenamen vor Windows 2000 im Format [<domainName>\<login_name>] verwenden. Sie können einen UPN nicht im Format login_name@DomainName verwenden. Ein Beispiel hierzu finden Sie unter „Beispiel D“ weiter unten in diesem Artikel. Authentifizierungsanmeldungen sind vom Typ "sysname " und müssen den Regeln für Bezeichner entsprechen und dürfen kein "\" enthalten. Windows-Anmeldenamen können ' \ '-Zeichen enthalten. Anmeldenamen auf Grundlage von Active Directory-Benutzern sind auf Namen mit weniger als 21 Zeichen beschränkt.

PASSWORD ='password'

Gilt nur für SQL Server-Anmeldenamen. Gibt das Kennwort für den Anmeldenamen an, der erstellt wird. Verwenden Sie ein sicheres Kennwort. Weitere Informationen finden Sie unter Sichere Kennwörter und Kennwortrichtlinie. Ab SQL Server 2012 (11.x) werden gespeicherte Kennwortinformationen mithilfe der SHA-512-Komponente des mit Salt verschlüsselten Kennworts berechnet.

Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. Kennwörter sollten immer mindestens acht 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 einzelnen Anführungszeichen oder die login_name enthalten.

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.

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).
  • Eines der nichtalphanumerischen Zeichen, z. B. ein Leerzeichen, _, @, *, ^, %, !, $, #oder &.

WINDOWS

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

Bemerkungen

  • Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.
  • Falls MUST_CHANGE angegeben wird, müssen CHECK_EXPIRATION und CHECK_POLICY auf ON festgelegt werden. Andernfalls erzeugt die Anweisung einen Fehler.
  • Eine Kombination aus CHECK_POLICY = AUS und CHECK_EXPIRATION = EIN wird nicht unterstützt.
  • Wenn CHECK_POLICY auf OFF festgelegt ist, wird lockout_time zurückgesetzt, und CHECK_EXPIRATION wird auf OFF festgelegt.

Wichtig

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

Berechtigungen

Nur Benutzer mit ALTER ANY LOGIN-Berechtigung auf dem Server oder einer Mitgliedschaft bei der festen Serverrolle securityadmin können Anmeldenamen erstellen. Weitere Informationen finden Sie unter Rollen auf Serverebene und unter ALTER SERVER ROLE.

Nach dem Erstellen eines Anmeldenamens

Nach dem Erstellen einer Anmeldung kann diese eine Verbindung mit Azure Synapse Analytics herstellen, verfügt jedoch nur über die der Rolle public erteilten Berechtigungen. Ziehen Sie die Ausführung einiger der folgenden Aktivitäten in Betracht.

  • Erstellen Sie zum Herstellen einer Verbindung mit einer Datenbank einen Datenbankbenutzer für den Anmeldenamen. Weitere Informationen finden Sie unter CREATE USER (Transact-SQL).
  • Erstellen sie eine benutzerdefinierte Serverrolle mit CREATE SERVER ROLE. Wird verwendet ALTER SERVER ROLE ... ADD MEMBER , um die neue Anmeldung zur benutzerdefinierten Serverrolle hinzuzufügen. Weitere Informationen finden Sie unter CREATE SERVER ROLE und unter ALTER SERVER ROLE.
  • Dient sp_addsrvrolemember zum Hinzufügen der Anmeldung zu einer festen Serverrolle. Weitere Informationen finden Sie unter Rollen auf Serverebene und unter sp_addsrvrolemember.
  • Gewähren Sie mit der GRANT-Anweisung Berechtigungen auf Serverebene für den neuen Anmeldenamen oder für eine Rolle, die den Anmeldenamen enthält. Weitere Informationen finden Sie unter GRANT.

Beispiele

G. Erstellen einer SQL Server-Authentifizierungsanmeldung mit einem Kennwort

Im folgenden Beispiel wird der Anmeldename Mary7 mit dem Kennwort A2c3456 erstellt.

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

H. Verwenden von Optionen

Im folgenden Beispiel wird der Anmeldename Mary8 mit Kennwörtern und einigen optionalen Argumenten erstellt.

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

I. Erstellen einer Anmeldung aus einem Windows-Domänenkonto

Im folgenden Beispiel wird ein Anmeldename von einem Windows-Domänenkonto mit dem Namen Mary in der Domäne Contoso erstellt.

CREATE LOGIN [Contoso\Mary] FROM WINDOWS;
GO