Lernprogramm: Schützen mit Microsoft Entra-Anmeldungen – Azure SQL Managed Instance
Gilt für: Azure SQL Managed Instance
In diesem Artikel erfahren Sie, wie Sie Serverprinzipale (Anmeldungen) verwenden, die von Microsoft Entra ID (früher Azure Active Directory) unterstützt werden, um eine Azure SQL Managed Instance-Instanz zu schützen.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen einer Microsoft Entra-Anmeldung für eine verwaltete Instanz
- Gewähren von Berechtigungen für Anmeldungen in einer verwalteten Instanz
- Erstellen von Microsoft Entra-Benutzern aus Anmeldungen
- Zuweisen von Berechtigungen zu Benutzern und Verwalten der Datenbanksicherheit
- Verwenden des Identitätswechsels mit Benutzern
- Verwenden datenbankübergreifender Abfragen mit Benutzern
- Kennenlernen von Sicherheitsfeatures wie Bedrohungsschutz, Überwachung, Datenmaskierung und Verschlüsselung
Hinweis
Microsoft Entra ID war zuvor als Azure Active Directory (Azure AD) bekannt.
Voraussetzungen
Für dieses Tutorial wird Folgendes vorausgesetzt:
- SQL Server Management Studio (SSMS)
- Eine verwaltete Instanz
- Führen Sie die Schritte des folgenden Artikels aus: Schnellstart: Erstellen einer verwalteten Instanz
- Zugriff auf Ihre verwaltete Instanz und Bereitstellung eines Microsoft Entra-Administrators für die verwaltete Instanz. Weitere Informationen finden Sie unter:
Beschränken des Zugriffs
Auf verwaltete Instanzen kann über eine private IP-Adresse zugegriffen werden. Anwendungen und Benutzer benötigen ähnlich wie bei einer isolierten SQL Server-Umgebung Zugriff auf das Netzwerk der verwalteten SQL-Instanz (VNET), um eine Verbindung herstellen zu können. Weitere Informationen finden Sie unter Herstellen einer Verbindung zwischen einer Anwendung und einer verwalteten SQL-Instanz.
Darüber hinaus kann ein Dienstendpunkt für eine verwaltete Instanz konfiguriert werden, um öffentliche Verbindungen wie bei Azure SQL-Datenbank zu ermöglichen. Weitere Informationen finden Sie unter Konfigurieren des öffentlichen Endpunkts in der verwalteten Azure SQL-Instanz.
Erstellen einer Microsoft Entra-Anmeldung mit SSMS
Die erste Microsoft Entra-Anmeldung kann durch den SQL-Admin oder den Microsoft Entra-Admin erstellt werden, der während der Bereitstellung erstellt wird. Weitere Informationen finden Sie unter Bereitstellen des Microsoft Entra-Administrators für SQL Managed Instance.
Beispiele für das Herstellen einer Verbindung mit der verwalteten SQL-Instanz finden Sie in den folgenden Artikeln:
- Schnellstart: Konfigurieren einer Azure-VM für das Herstellen einer Verbindung mit einer verwalteten SQL-Instanz
- Schnellstart: Konfigurieren einer Point-to-Site-Verbindung von einem lokalen Computer mit einer verwalteten SQL-Instanz
Stellen Sie eine Verbindung zu Ihrer verwalteten Instanz entweder mit einer
sysadmin
SQL-Anmeldung oder dem Microsoft Entra-Admin her, indem Sie SQL Server Management Studio (SSMS) verwenden.Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Verwenden Sie im Abfragefenster die folgende Syntax, um eine Anmeldung für ein lokales Microsoft Entra-Konto zu erstellen:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GO
In diesem Beispiel wird eine Anmeldung für das Konto nativeuser@aadsqlmi.onmicrosoft.com erstellt.
USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GO
Wählen Sie auf der Symbolleiste die Option Ausführen aus, um die Anmeldung zu erstellen.
Führen Sie den folgenden T-SQL-Befehl aus, um die neu hinzugefügte Anmeldung zu überprüfen:
SELECT * FROM sys.server_principals; GO
Weitere Informationen finden Sie unter CREATE LOGIN (Transact-SQL).
Gewähren von Berechtigungen zum Erstellen von Anmeldungen
Vorhandene Anmeldungen müssen über die entsprechenden Berechtigungen verfügen oder Teil der entsprechenden Serverrollen sein, um weitere Microsoft Entra-Anmeldungen zu erstellen.
SQL-Authentifizierungsanmeldungen
- Wenn es sich bei der Anmeldung um einen auf SQL-Authentifizierung basierenden Serverprinzipal handelt, muss ihm die
sysadmin
Rolle zur Erstellung von Anmeldungen für Microsoft Entra-Konten zugewiesen werden.
Microsoft Entra-Authentifizierungsanmeldungen
- Wenn es sich bei der Anmeldung um einen Microsoft Entra-Serverprinzipal handelt, muss ihm entweder die
sysadmin
- odersecurityadmin
-Serverrolle zugewiesen werden, um Anmeldungen für andere Microsoft Entra-Benutzer, -Gruppen und -Anwendungen zu erstellen. - Zumindest muss die Berechtigung ALTER ANY LOGIN gewährt werden, um weitere Microsoft Entra-Anmeldungen erstellen zu können.
- Standardmäßig werden neu erstellten Microsoft Entra-Anmeldungen in
master
die folgenden Standardberechtigungen gewährt: CONNECT SQL und VIEW ANY DATABASE. - Die Serverrolle
sysadmin
kann innerhalb einer verwalteten Instanz zahlreichen Microsoft Entra-Anmeldungen zugewiesen werden.
So fügen Sie die Anmeldung der Serverrolle sysadmin
hinzu:
Melden Sie sich erneut bei der verwalteten Instanz an, oder verwenden Sie die bestehende Verbindung mit dem Microsoft Entra-Administrator oder SQL-Prinzipal vom Typ
sysadmin
.Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Weisen Sie der Microsoft Entra-Anmeldung die Serverrolle
sysadmin
zu. Verwenden Sie dazu die folgende T-SQL-Syntax:ALTER SERVER ROLE sysadmin ADD MEMBER login_name GO
Im folgenden Beispiel wird die Serverrolle
sysadmin
der Anmeldung nativeuser@aadsqlmi.onmicrosoft.com zugewiesen:ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
Erstellen zusätzlicher Microsoft Entra-Anmeldungen mit SSMS
Nachdem die Microsoft Entra-Anmeldung erstellt und mit Berechtigungen sysadmin
versehen wurde, können mit dieser Anmeldung unter Verwendung von CREATE LOGIN und der Klausel FROM EXTERNAL PROVIDER weitere Anmeldungen erstellt werden.
Stellen Sie mit der Microsoft Entra-Anmeldung eine Verbindung zur verwalteten Instanz her, indem Sie in SQL Server Management Studio (SSMS) die Option Mit Server verbinden auswählen.
- Geben Sie den Hostnamen Ihrer SQL Managed Instance-Instanz unter Servername ein.
- Wählen Sie für die Authentifizierung Active Directory – Universal mit MFA-Unterstützung, um ein Anmeldefenster für die Multi-Faktor-Authentifizierung aufzurufen. Anmelden. Weitere Informationen finden Sie unter Universelle Authentifizierung (SSMS-Unterstützung für Multi-Faktor-Authentifizierung).
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Verwenden Sie im Abfragefenster die folgende Syntax, um eine Anmeldung für ein weiteres Microsoft Entra-Konto zu erstellen:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GO
In diesem Beispiel wird eine Anmeldung für den Microsoft Entra-Benutzer bob@aadsqlmi.net erstellt, dessen Domäne „aadsqlmi.net“ einem Verbund mit der Microsoft Entra-Domäne „aadsqlmi.onmicrosoft.com“ angehört.
Führen Sie den folgenden T-SQL-Befehl aus. Microsoft Entra-Verbundkonten ersetzen bei SQL Managed Instance die lokalen Windows-Anmeldungen und -Benutzer.
USE master GO CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER GO
Erstellen Sie mithilfe der Syntax für CREATE DATABASE eine Datenbank in der verwalteten Instanz. Diese Datenbank wird im nächsten Abschnitt zum Testen von Benutzeranmeldungen verwendet.
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Verwenden Sie im Abfragefenster die folgende Syntax, um eine Datenbank namens MyMITestDB zu erstellen:
CREATE DATABASE MyMITestDB; GO
Erstellen Sie eine SQL Managed Instance-Anmeldung für eine Gruppe in Microsoft Entra ID. Die Gruppe muss in Microsoft Entra ID vorhanden sein, bevor die Anmeldung zu SQL Managed Instance hinzugefügt wird. Siehe Erstellen einer einfachen Gruppe und Hinzufügen von Mitgliedern mithilfe von Microsoft Entra ID Erstellen Sie eine Gruppe namens mygroup, und fügen Sie ihr Mitglieder hinzu.
Öffnen Sie in SQL Server Management Studio ein neues Abfragefenster.
In diesem Beispiel wird davon ausgegangen, dass in Microsoft Entra ID eine Gruppe namens mygroup vorhanden ist. Führen Sie den folgenden Befehl aus:
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GO
Melden Sie sich zu Testzwecken mit der neu erstellten Anmeldung oder Gruppe bei der verwalteten Instanz an. Öffnen Sie eine neue Verbindung mit der verwalteten Instanz, und verwenden Sie bei der Authentifizierung die neue Anmeldung.
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie für die neue Verbindung Neue Abfrage aus.
Führen Sie den folgenden Befehl aus, um die Serverberechtigungen für die neu erstellte Microsoft Entra-Anmeldung zu überprüfen:
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
Die Unterstützung von Microsoft Entra Prinzipalen als Benutzer und Logins durch Azure SQL erstreckt sich auch auf interne und externe Gastbenutzer mit Microsoft Entra External ID. Gastbenutzer, sowohl einzeln als auch als Teil einer Gruppe, können genauso wie alle anderen Microsoft-Entra-Benutzer in Azure SQL verwendet werden. Wenn Sie möchten, dass Gastbenutzer andere Microsoft-Entra-Server-Logins oder Datenbankbenutzer erstellen können, müssen sie die Berechtigung haben, andere Identitäten im Microsoft-Entra-Verzeichnis zu lesen. Diese Berechtigung ist auf Verzeichnisebene konfiguriert. Weitere Informationen finden Sie unter Gastzugangsberechtigungen in Microsoft Entra ID.
Erstellen eines Microsoft Entra-Benutzers aus der Microsoft Entra-Anmeldung
Die Autorisierung für einzelne Datenbanken funktioniert in SQL Managed Instance ähnlich wie bei Datenbanken in SQL Server. Ein Benutzer kann aus einer bestehenden Anmeldung in einer Datenbank erstellt werden, dem Berechtigungen für diese Datenbank gewährt werden, oder einer Datenbankrolle hinzugefügt werden.
Nachdem wir nun eine Datenbank namens MyMITestDB sowie eine Anwendung mit Standardberechtigungen erstellt haben, können wir als Nächstes auf der Grundlage dieser Anmeldung einen Benutzer erstellen. Im Moment kann die Anmeldung zwar eine Verbindung mit der verwalteten Instanz herstellen und alle Datenbanken anzeigen, aber nicht mit den Datenbanken interagieren. Wenn Sie sich mit dem Microsoft Entra-Konto mit den Standardberechtigungen anmelden und versuchen, die neu erstellte Datenbank zu erweitern, wird der folgende Fehler angezeigt:
Weitere Informationen zum Gewähren von Datenbankberechtigungen finden Sie unter Erste Schritte mit Berechtigungen für die Datenbank-Engine.
Erstellen eines Microsoft Entra-Benutzers und einer Beispieltabelle
Hinweis
Es gibt einige Einschränkungen, wenn sich ein Benutzer als Teil einer Microsoft Entra-Gruppe anmeldet.
Beispielsweise gibt ein Aufruf von SUSER_SID
NULL
zurück, da der angegebene Microsoft Entra-Benutzer nicht Teil der sys.server_principals
-Tabelle ist.
Der Zugriff auf bestimmte gespeicherte Prozeduren oder eine Liste der erteilten Berechtigungen kann in diesem Fall eingeschränkt sein.
Melden Sie sich über SQL Server Management Studio unter Verwendung eines Kontos vom Typ
sysadmin
bei Ihrer verwalteten Instanz an.Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Verwenden Sie im Abfragefenster die folgende Syntax, um einen Benutzer auf der Grundlage einer Microsoft Entra-Anmeldung zu erstellen:
USE <Database Name> -- provide your database name GO CREATE USER user_name FROM LOGIN login_name GO
Im folgenden Beispiel wird der Benutzer bob@aadsqlmi.net erstellt, ausgehend vom Anmeldenamen bob@aadsqlmi.net:
USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GO
Ein Microsoft Entra-Benutzer kann auch auf der Grundlage einer Microsoft Entra-Anmeldung erstellt werden, bei der es sich um eine Gruppe handelt.
Im folgenden Beispiel wird eine Anmeldung für die Microsoft Entra-Gruppe mygroup erstellt, die in Ihrem Microsoft Entra-Mandanten vorhanden ist.
USE MyMITestDB GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO
Alle Benutzer, die mygroup angehören, können auf die Datenbank MyMITestDB zugreifen.
Wichtig
Wenn Sie einen Benutzer (USER) auf der Grundlage einer Microsoft Entra-Anmeldung erstellen, müssen Sie als Benutzername den gleichen Anmeldenamen angeben wie in der Anmeldung (LOGIN).
Weitere Informationen finden Sie unter CREATE USER (Transact-SQL).
Erstellen Sie in einem neuen Abfragefenster mithilfe des folgenden T-SQL-Befehls eine Testtabelle:
USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );
Erstellen Sie in SSMS eine Verbindung mit dem erstellten Benutzer. Sie werden feststellen, dass die zuvor durch den Systemadministrator (
sysadmin
) erstellte Tabelle TestTable nicht angezeigt wird. Dem Benutzer müssen Leseberechtigungen für die Datenbankdaten gewährt werden.Die aktuellen Berechtigungen des Benutzers können mithilfe des folgenden Befehls überprüft werden:
SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
Hinzufügen von Benutzern zu Datenbankrollen
Damit dem Benutzer Daten in der Datenbank angezeigt werden, können wir ihm Rollen auf Datenbankebene zuweisen.
Melden Sie sich über SQL Server Management Studio unter Verwendung eines Kontos vom Typ
sysadmin
bei Ihrer verwalteten Instanz an.Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Weisen Sie dem Microsoft Entra-Benutzer die Datenbankrolle
db_datareader
zu. Verwenden Sie dazu die folgende T-SQL-Syntax:Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GO
Im folgenden Beispiel werden dem Benutzer bob@aadsqlmi.net und der Gruppe mygroup Berechtigungen vom Typ
db_datareader
für die Datenbank MyMITestDB zugewiesen:USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GO
Vergewissern Sie sich mithilfe des folgenden Befehls, dass der in der Datenbank erstellte Microsoft Entra-Benutzer vorhanden ist:
SELECT * FROM sys.database_principals GO
Erstellen Sie unter Verwendung des Benutzers, der der Rolle
db_datareader
hinzugefügt wurde, eine neue Verbindung mit der verwalteten Instanz.Erweitern Sie die Datenbank im Objekt-Explorer, um die Tabelle anzuzeigen.
Öffnen Sie ein neues Abfragefenster, und führen Sie die folgende SELECT-Anweisung aus:
SELECT * FROM TestTable
Werden Daten aus der Tabelle angezeigt? Die Spalten sollten zurückgegeben werden.
Identitätswechsel für Microsoft Entra-Anmeldungen
SQL Managed Instance unterstützt Identitätswechsel für Microsoft Entra-Anmeldungen.
Testen des Identitätswechsels
Melden Sie sich über SQL Server Management Studio unter Verwendung eines Kontos vom Typ
sysadmin
bei Ihrer verwalteten Instanz an.Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Führen Sie im Abfragefenster den folgenden Befehl aus, um eine neue gespeicherte Prozedur zu erstellen:
USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS 'bob@aadsqlmi.net' AS SELECT user_name(); GO
Verwenden Sie den folgenden Befehl, um sich zu vergewissern, dass es sich bei dem Benutzer, dessen Identität Sie beim Ausführen der gespeicherten Prozedur annehmen, um bob@aadsqlmi.net handelt:
Exec dbo.usp_Demo
Testen Sie den Identitätswechsel mithilfe der Anweisung „EXECUTE AS LOGIN“:
EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Hinweis
Nur SQL-Serverebenenprinzipale (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
Verwenden datenbankübergreifender Abfragen
Datenbankübergreifende Abfragen werden für Microsoft Entra-Konten mit Microsoft Entra-Anmeldungen unterstützt. Um eine datenbankübergreifende Abfrage mit einer Microsoft Entra-Gruppe testen zu können, müssen wir eine weitere Datenbank und Tabelle erstellen. Falls Sie bereits über eine weitere Datenbank und Tabelle verfügen, können Sie die Erstellung überspringen.
Melden Sie sich über SQL Server Management Studio unter Verwendung eines Kontos vom Typ
sysadmin
bei Ihrer verwalteten Instanz an.Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Verwenden Sie im Abfragefenster den folgenden Befehl, um eine Datenbank namens MyMITestDB2 und eine Tabelle namens TestTable2 zu erstellen:
CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );
Führen Sie in einem neuen Abfragefenster den folgenden Befehl aus, um in der neuen Datenbank MyMITestDB2 den Benutzer mygroup zu erstellen und mygroup SELECT-Berechtigungen für diese Datenbank zu gewähren:
USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GO
Melden Sie sich über SQL Server Management Studio als Mitglied der Microsoft Entra-Gruppe mygroup bei der verwalteten Instanz an. Öffnen Sie ein neues Abfragefenster, und führen Sie die datenbankübergreifende SELECT-Anweisung aus:
USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GO
Daraufhin sollten die Tabellenergebnisse aus TestTable2 angezeigt werden.
Weitere unterstützte Szenarien
- Für Microsoft Entra-Anmeldungen werden SQL-Agent-Verwaltung und Auftragsausführungen unterstützt.
- Vorgänge für die Datenbanksicherung und -wiederherstellung können von Microsoft Entra-Anmeldungen ausgeführt werden.
- Überwachung aller Anweisungen in Verbindung mit Microsoft Entra-Anmeldungen und Authentifizierungsereignissen.
- Dedizierte Administratorverbindung für Microsoft Entra-Anmeldungen, die der Serverrolle
sysadmin
angehören. - Microsoft Entra-Anmeldungen können mit dem sqlcmd-Hilfsprogramm und mit dem Tool SQL Server Management Studio verwendet werden.
- Anmeldetrigger werden für Anmeldeereignisse unterstützt, die aus Microsoft Entra-Anmeldungen stammen.
- Service Broker und Datenbank-E-Mails können unter Verwendung von Microsoft Entra-Anmeldungen eingerichtet werden.
Nächste Schritte
Aktivieren der Sicherheitsfeatures
Unter Sicherheitsfeatures für verwaltete SQL-Instanzen finden Sie eine umfassende Liste mit Schutzmöglichkeiten für Ihre Datenbank. Folgende Sicherheitsfeatures werden behandelt:
- Überwachung verwalteter SQL-Instanzen
- Always Encrypted
- Bedrohungserkennung
- Dynamische Datenmaskierung
- Sicherheit auf Zeilenebene
- Transparent Data Encryption (TDE)
Funktionen verwalteter SQL-Instanzen
Eine vollständige Übersicht über die Funktionen einer verwalteten SQL-Instanz finden Sie hier: