Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel führt Sie durch das Erstellen und die Nutzung von Logins, die von Microsoft Entra ID (früher Azure Active Directory) unterstützt werden, innerhalb der virtuellen master Datenbank eines Azure Synapse Analytics dedizierten SQL-Pools (früher SQL DW). Dedizierte SQL-Pools in Azure Synapse Analytics-Arbeitsbereichen verwenden keine logischen SQL-Server.
Hinweis
Microsoft Entra Server Principals befinden sich derzeit in der Vorschauversion für Azure Synapse Analytics.
In diesem Tutorial erfahren Sie, wie:
- Erstellen Sie einen Microsoft Entra-Login in der virtuellen
masterDatenbank - Erstellen eines Benutzers, der einer Microsoft Entra-Anmeldung in der virtuellen
master-Datenbank zugeordnet ist - Verwenden Sie die
WITH OBJECT_IDSyntax für nicht eindeutige Anzeigenamen - Gewähren von Serverrollen für einen Microsoft Entra-Benutzer
- Deaktivieren einer Microsoft Entra-Anmeldung
Prerequisites
- Ein Azure Synapse Analytics dedizierter SQL-Pool und eine Datenbank.
- Microsoft Entra-Authentifizierung für Azure Synapse Analytics konfiguriert. Weitere Informationen finden Sie unter Microsoft Entra-Authentifizierung mit Azure Synapse Analytics konfigurieren und verwalten.
- In diesem Artikel wird erläutert, wie Sie eine Microsoft Entra-Anmeldung und einen Benutzer in der virtuellen
master-Datenbank erstellen. Nur Microsoft Entra-Administrator*innen können Benutzer*innen in der virtuellenmaster-Datenbank erstellen. Daher wird empfohlen, das Microsoft Entra-Administratorkonto zu verwenden, wenn Sie dieses Tutorial durchführen. Ein Microsoft Entra-Prinzipal mit der Rolleloginmanagerkann zwar eine Anmeldung erstellen, aber keine Benutzer innerhalb der virtuellenmaster-Datenbank.
Hinweis
Stellen Sie sicher, dass für Organisationen, die mit nicht eindeutigen Anzeigenamen in Microsoft Entra ID umgehen (insbesondere für Dienstprinzipale), die Objekt-ID-Informationen für jeden Dienstprinzipal verfügbar sind, für den Sie Logins erstellen möchten. Die WITH OBJECT_ID Syntaxerweiterung kann dazu beitragen, diese Szenarien zu beheben.
Erstellen einer Microsoft Entra-Anmeldung
Erstelle einen Login für ein Microsoft Entra-Konto. Verwenden Sie in diesem Beispiel
bob@contoso.com, das in der Microsoft Entra-Domänecontosovorhanden ist. Sie können auch einen Login aus einer Microsoft Entra-Gruppe oder einem Service Principal (Anwendungen) erstellen. Weitere Informationen finden Sie unter CREATE LOGIN (Transact-SQL).Hinweis
Die erste Microsoft Entra-Anmeldung muss vom Microsoft Entra-Administrator erstellt werden. Der Microsoft Entra-Administrator kann ein Microsoft Entra-Benutzer oder eine -Gruppe sein. Ein SQL-Authentifizierungslogin kann keine Microsoft Entra-Logins erstellen.
Tip
Wenn Sie Probleme mit nicht-eindeutigen Anzeigenamen in Microsoft Entra ID haben, verwenden Sie die Syntaxerweiterung
WITH OBJECT_ID. Dieses Feature ist besonders nützlich für Dienstprinzipale mit doppelten Anzeigenamen. Beispiele:CREATE LOGIN [myapp4466e] FROM EXTERNAL PROVIDER WITH OBJECT_ID = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb'Für weitere Informationen siehe Überlegungen zur Benennung.
Mit SQL Server Management Studio (SSMS) melden Sie sich mit dem Microsoft Entra-Administratorkonto in Ihrem dedizierten SQL-Pool an.
Erweitern Sie Datenbanken>Systemdatenbanken. Klicken Sie mit der rechten Maustaste auf die
master-Datenbank und wählen Sie Neue Abfrage aus, um ein neues Abfragefenster im Kontext dermaster-Datenbank zu öffnen.Führen Sie die folgende Abfrage aus:
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER GOÜberprüfen Sie die erstellte Anmeldung in
sys.server_principals. Führen Sie die folgenden Abfrage aus:SELECT name, type_desc, type, is_disabled FROM sys.server_principals WHERE type_desc like 'external%'Du siehst ein ähnliches Ergebnis wie das folgende:
Name type_desc type is_disabled bob@contoso.com EXTERNAL_LOGIN E 0Der Login
bob@contoso.comwird in der virtuellenmasterDatenbank erstellt.
Erstelleneines Benutzers aus einer Microsoft Entra-Anmeldung
Nachdem Sie einen Microsoft Entra-Login erstellt haben, erstellen Sie einen Microsoft Entra-Benutzer auf Datenbankebene, der dem Microsoft Entra-Login in der virtuellen
masterDatenbank zugeordnet ist. Um zu zeigen, wie man den Benutzer zu Sonderrollen hinzufügt, verwenden Sie unser Beispielbob@contoso.com, um einen Benutzer in der virtuellenmaster-Datenbank zu erstellen. Nur Microsoft Entra-Administrator*innen oder SQL-Serveradministrator*innen können Benutzer*innen in der virtuellenmaster-Datenbank erstellen.Nutze die virtuelle
masterDatenbank, aber du kannst dich wieder mit einer Datenbank deiner Wahl verbinden, wenn du Nutzer in anderen Datenbanken erstellen möchtest. Führen Sie die folgende Abfrage aus.CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]Tip
Obwohl es nicht erforderlich ist, Microsoft Entra-Benutzeraliasen (z. B. ) zu verwenden, empfiehlt es sich,
bob@contoso.comdenselben Alias für Microsoft Entra-Benutzer und Microsoft Entra-Anmeldungen zu verwenden.Wenn Sie einen Benutzer direkt von einem externen Anbieter mit einer bestimmten Objekt-ID erstellen müssen (zum Beispiel um Probleme mit nicht-eindeutigen Anzeigenamen zu lösen), verwenden Sie folgende Syntax:
CREATE USER [user_name] FROM EXTERNAL PROVIDER WITH OBJECT_ID = 'objectid'Überprüfen Sie den erstellten Benutzer in
sys.database_principals. Führen Sie die folgenden Abfrage aus:SELECT name, type_desc, type FROM sys.database_principals WHERE type_desc like 'external%'Du siehst ein ähnliches Ergebnis wie das folgende:
Name type_desc type bob@contoso.com EXTERNAL_USER E
Hinweis
Die vorhandene Syntax zum Erstellen eines Microsoft Entra-Benutzers ohne Microsoft Entra-Anmeldung wird weiterhin unterstützt. Wenn du die folgende Syntax ausführst, erstellst du einen datenbankenthaltenen Benutzer in der jeweiligen Datenbank, mit der du verbunden bist. Dieser Benutzer ist mit keinem Login verknüpft, selbst wenn ein Login mit demselben Namen in der virtuellen master Datenbank existiert.
Beispiel: CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
Sie können einen Microsoft Entra-Login erstellen, indem Sie einen Service Principal mit einem nicht eindeutigen Anzeigenamen verwenden. Für weitere Informationen siehe Überlegungen zum Namen.
Gewähren von Rollen auf Serverebene für Microsoft Entra-Anmeldungen
Sie können Logins zu festen Server-Rollen hinzufügen, wie zum Beispiel die ##MS_DefinitionReader##-, ##MS_ServerStateReader##- oder ##MS_ServerStateManager##-Rolle in der master Datenbank.
Hinweis
Die hier erwähnten Rollen auf Serverebene werden für Microsoft Entra-Gruppen nicht unterstützt.
ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [AzureAD_object];
ALTER SERVER ROLE ##MS_ServerStateReader## ADD MEMBER [AzureAD_object];
ALTER SERVER ROLE ##MS_ServerStateManager## ADD MEMBER [AzureAD_object];
Berechtigungen sind erst wirksam, wenn der Benutzer die Verbindung wiederhergestellt hat. Leeren Sie auch den DBCC-Cache:
DBCC FLUSHAUTHCACHE
DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Um zu überprüfen, welche Microsoft Entra Anmeldungen Teil von Rollen auf Serverebene sind, führen Sie die folgende Abfrage aus:
SELECT roles.principal_id AS RolePID,roles.name AS RolePName,
server_role_members.member_principal_id AS MemberPID, members.name AS MemberPName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.server_principals AS members
ON server_role_members.member_principal_id = members.principal_id;
Gewähren spezieller Rollen für Microsoft Entra-Benutzer
Du kannst spezielle Rollen für Azure Synapse Analytics Benutzern in der virtuellen master Datenbank zuweisen.
Um einem Benutzer eine der speziellen Datenbankrollen zuzuweisen, muss der Benutzer in der virtuellen master Datenbank existieren.
Um einen Benutzer zu einer Rolle hinzuzufügen, führen Sie folgende Abfrage aus:
ALTER ROLE [dbmanager] ADD MEMBER [AzureAD_object]
Führen Sie die folgende Abfrage aus, um einen Benutzer aus einer Rolle zu entfernen:
ALTER ROLE [dbmanager] DROP MEMBER [AzureAD_object]
AzureAD_object kann ein Microsoft Entra-Benutzer, eine Microsoft Entra-Gruppe oder ein Microsoft Entra-Dienstprinzipal in Microsoft Entra ID sein.
Im folgenden Beispiel erstellst du den Benutzer bob@contoso.com. Weise die Rollen dbmanager und loginmanager dem Benutzer zu.
Führen Sie die folgende Abfrage aus:
ALTER ROLE [dbmanager] ADD MEMBER [bob@contoso.com] ALTER ROLE [loginmanager] ADD MEMBER [bob@contoso.com]Überprüfen Sie die Zuweisung der Datenbankrolle, indem Sie die folgende Abfrage ausführen:
SELECT DP1.name AS DatabaseRoleName, isnull (DP2.name, 'No members') AS DatabaseUserName FROM sys.database_role_members AS DRM RIGHT OUTER JOIN sys.database_principals AS DP1 ON DRM.role_principal_id = DP1.principal_id LEFT OUTER JOIN sys.database_principals AS DP2 ON DRM.member_principal_id = DP2.principal_id WHERE DP1.type = 'R'and DP2.name like 'bob%'Du siehst ein ähnliches Ergebnis wie das folgende:
DatabaseRoleName DatabaseUserName dbmanager bob@contoso.com loginmanager bob@contoso.com
Optional: Deaktivieren einer Anmeldung
Verwenden Sie die ALTER LOGIN (Transact-SQL)-DDL-Syntax, um einen Microsoft Entra Login in einem dedizierten SQL-Pool zu aktivieren oder zu deaktivieren.
ALTER LOGIN [bob@contoso.com] DISABLE
Damit Änderungen an DISABLE oder ENABLE sofort wirksam werden, löschen Sie den Authentifizierungscache und den TokenAndPermUserStore-Cache mit den folgenden T-SQL-Befehlen:
DBCC FLUSHAUTHCACHE
DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Überprüfen Sie, ob der Login deaktiviert ist, indem Sie folgende Abfrage ausführen:
SELECT name, type_desc, type
FROM sys.server_principals
WHERE is_disabled = 1
Verwandte Inhalte
- Microsoft Entra-Serverprinzipale
- Namensüberlegungen für Microsoft Entra-Prinzipale
- LOGIN ERSTELLEN (Transact-SQL)
- BENUTZER ERSTELLEN (Transact-SQL)