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:

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:

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

  2. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.

  3. 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
    
  4. Wählen Sie auf der Symbolleiste die Option Ausführen aus, um die Anmeldung zu erstellen.

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

    SELECT *  
    FROM sys.server_principals;  
    GO
    

    Screenshot der Registerkarte „Ergebnisse“ im SSMS-Objekt-Explorer mit „name“, „principal_id“, „sid“, „type“ und „type_desc“ der neu hinzugefügten Anmeldung

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- oder securityadmin-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:

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

  2. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.

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

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

    1. Geben Sie den Hostnamen Ihrer SQL Managed Instance-Instanz unter Servername ein.
    2. 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).
  2. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.

  3. 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
    
  4. 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.

    1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.

    2. Verwenden Sie im Abfragefenster die folgende Syntax, um eine Datenbank namens MyMITestDB zu erstellen:

      CREATE DATABASE MyMITestDB;
      GO
      
  5. 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.

  6. Ö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
    
  7. 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.

  8. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie für die neue Verbindung Neue Abfrage aus.

  9. 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:

Screenshot einer Fehlermeldung vom SSMS-Objekt-Explorer mit dem Hinweis „Auf die Datenbank MyMITestDB kann nicht zugegriffen werden (ObjectExplorer).“

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.

  1. Melden Sie sich über SQL Server Management Studio unter Verwendung eines Kontos vom Typ sysadmin bei Ihrer verwalteten Instanz an.

  2. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.

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

  5. 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)
    );
    
  6. 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.

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

  1. Melden Sie sich über SQL Server Management Studio unter Verwendung eines Kontos vom Typ sysadmin bei Ihrer verwalteten Instanz an.

  2. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.

  3. 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
    
  4. Vergewissern Sie sich mithilfe des folgenden Befehls, dass der in der Datenbank erstellte Microsoft Entra-Benutzer vorhanden ist:

    SELECT * FROM sys.database_principals
    GO
    
  5. Erstellen Sie unter Verwendung des Benutzers, der der Rolle db_datareader hinzugefügt wurde, eine neue Verbindung mit der verwalteten Instanz.

  6. Erweitern Sie die Datenbank im Objekt-Explorer, um die Tabelle anzuzeigen.

    Screenshot vom SSMS-Objekt-Explorer mit der die Ordnerstruktur für die Tabellen in MyMITestDB. Der Ordner „dbo.TestTable“ ist hervorgehoben.

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

    Screenshot der Registerkarte „Ergebnisse“ im SSMS-Objekt-Explorer mit den Tabellenspaltenüberschriften „AccountNum“, „City“, „Name“ und „State“

Identitätswechsel für Microsoft Entra-Anmeldungen

SQL Managed Instance unterstützt Identitätswechsel für Microsoft Entra-Anmeldungen.

Testen des Identitätswechsels

  1. Melden Sie sich über SQL Server Management Studio unter Verwendung eines Kontos vom Typ sysadmin bei Ihrer verwalteten Instanz an.

  2. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.

  3. 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
    
  4. 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
    
  5. 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.

  1. Melden Sie sich über SQL Server Management Studio unter Verwendung eines Kontos vom Typ sysadmin bei Ihrer verwalteten Instanz an.

  2. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.

  3. 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)
    );
    
  4. 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
    
  5. 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:

Funktionen verwalteter SQL-Instanzen

Eine vollständige Übersicht über die Funktionen einer verwalteten SQL-Instanz finden Sie hier: