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 aufON
. Andernfalls erzeugt die Anweisung einen Fehler. - Eine Kombination von
CHECK_POLICY = OFF
undCHECK_EXPIRATION = ON
wird nicht unterstützt. - Wenn CHECK_POLICY auf
OFF
festgelegt ist, wird lockout_time zurückgesetzt undCHECK_EXPIRATION
aufOFF
.
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
master
ist. - 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 master
erstellt.
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
Zugehöriger Inhalt
* Azure SQL Datenbank*
SQL-Datenbank
Weitere Informationen zur Konnektivität und Autorisierung für Azure SQL-Datenbank finden Sie unter:
- Konnektivitätseinstellungen für Azure SQL-Datenbank
- Autorisieren des Datenbankzugriffs für SQL-Datenbank
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 contoso
ist. 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.
Zugehöriger Inhalt
* 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 aufE
EXTERNAL_LOGIN für Anmeldedaten festgelegt isttype_desc
, die Microsoft Entra-Benutzern zugeordnet sind, oder Spaltenwert, der aufX
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
odersysadmin
. 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 dieALTER 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]
- Verwenden Sie den folgenden Befehl, um die
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
Zugehöriger Inhalt
* 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
- Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.
- 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.
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 dieALTER 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
Zugehöriger Inhalt
* 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.
- 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.
- 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.
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
Zugehöriger Inhalt
- Erste Schritte mit Berechtigungen für die Datenbank-Engine
- Principals
- Kennwortrichtlinie
- ALTER LOGIN
- DROP LOGIN
- EVENTDATA
- Erstellen eines Anmeldenamens