Freigeben über


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 Sie eine Microsoft Entra-Anmeldung für eine verwaltete SQL-Instanz.
  • Erteilen von Berechtigungen für Anmeldungen in einer verwalteten SQL-Instanz.
  • Erstellen Sie Microsoft Entra-Benutzer aus Anmeldeinformationen.
  • Weisen Sie Benutzern Berechtigungen zu, und verwalten Sie die Datenbanksicherheit.
  • Verwenden Sie den Identitätswechsel für Benutzer.
  • Verwenden Sie datenbankübergreifende Abfragen für Benutzer.
  • Erfahren Sie mehr über Sicherheitsfeatures wie Bedrohungsschutz, Überwachung, Datenmasken 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 SQL-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.

Es ist auch möglich, einen Dienstendpunkt in einer sql-verwalteten Instanz zu konfigurieren, die öffentliche Verbindungen auf die gleiche Weise wie für Azure SQL-Datenbank ermöglicht. Weitere Informationen finden Sie unter Konfigurieren des öffentlichen Endpunkts in der verwalteten Azure SQL-Instanz.

Erstellen einer Microsoft Entra-Anmeldung mit SSMS

Der SQL-Administrator kann die erste Microsoft Entra-Anmeldung oder den Microsoft Entra-Administrator erstellen, der während der Bereitstellung erstellt wurde. 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 mithilfe von SQL Server Management Studio (SSMS) eine Verbindung mit Ihrer sql-verwalteten Instanz mit einem Sysadmin SQL-Anmeldenamen oder dem Microsoft Entra-Administrator her.

  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. Überprüfen Sie die neu hinzugefügte Anmeldung, indem Sie den folgenden T-SQL-Befehl ausführen:

    SELECT *
    FROM sys.server_principals;
    GO
    

    Screenshot der Registerkarte

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 SQL-Authentifizierungsserverprinzipal handelt, muss die Sysadmin-Rolle zugewiesen werden, um Anmeldeinformationen für Microsoft Entra-Konten zu erstellen.

Microsoft Entra-Authentifizierungsanmeldungen

  • Wenn es sich bei der Anmeldung um einen Microsoft Entra-Serverprinzipal handelt, muss ihm entweder die Serverrolle "sysadmin " oder "securityadmin " zugewiesen werden, um Anmeldeinformationen für andere Microsoft Entra-Benutzer, -Gruppen und -Anwendungen zu erstellen.
  • Mindestens muss die ALTER ANY LOGIN Berechtigung erteilt werden, um andere Microsoft Entra-Anmeldungen zu erstellen.
  • Standardmäßig sind die Standardberechtigungen, die neu erstellten Microsoft Entra-Anmeldungen master gewährt werden CONNECT SQL , und VIEW ANY DATABASE.
  • Die Sysadmin-Serverrolle kann vielen Microsoft Entra-Anmeldungen in einer SQL-verwalteten Instanz gewährt werden.

So fügen Sie die Anmeldung zur Sysadmin-Serverrolle hinzu:

  1. Melden Sie sich erneut bei der verwalteten SQL-Instanz an, oder verwenden Sie die vorhandene Verbindung mit dem Microsoft Entra-Administrator oder SQL-Prinzipal, der ein Sysadmin ist.

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

  3. Gewähren Sie der Microsoft Entra-Anmeldung die Sysadmin-Serverrolle mithilfe der folgenden T-SQL-Syntax:

    ALTER SERVER ROLE sysadmin ADD MEMBER login_name
    GO
    

    Im folgenden Beispiel wird die Sysadmin-Serverrolle für die Anmeldung nativeuser@aadsqlmi.onmicrosoft.comgewährt:

    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 sysadmin-Berechtigungen gewährt wurde, kann diese Anmeldung zusätzliche Anmeldungen mithilfe der FROM EXTERNAL PROVIDER Klausel erstellen.CREATE LOGIN

  1. Stellen Sie eine Verbindung mit der von SQL verwalteten Instanz mit der Microsoft Entra-Anmeldung her, indem Sie "Mit Server verbinden" in SQL Server Management Studio (SSMS) auswählen.

    1. Geben Sie den Hostnamen Ihrer SQL Managed Instance-Instanz unter Servername ein.
    2. Wählen Sie für die AuthentifizierungMicrosoft Entra MFA aus, um ein mehrstufiges Authentifizierungsanmeldungsfenster anzuzeigen. 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.neterstellt, dessen Domäne aadsqlmi.net mit der Microsoft Entra-Domäne aadsqlmi.onmicrosoft.com ist.

    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 eine Datenbank in der sql-verwalteten Instanz mithilfe der CREATE DATABASE-Syntax . 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 "Meine Gruppe", und fügen Sie dieser Gruppe 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 als Test bei der sql-verwalteten Instanz mit der neu erstellten Anmeldung oder Gruppe an. Öffnen Sie eine neue Verbindung mit der verwalteten SQL-Instanz, und verwenden Sie beim Authentifizieren 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. Sie können einen Benutzer aus einer vorhandenen Anmeldung in einer Datenbank erstellen, der Berechtigungen für diese Datenbank erteilt oder einer Datenbankrolle hinzugefügt wurde.

Nachdem wir nun eine Datenbank namens MyMITestDB und eine Anmeldung erstellt haben, die nur über Standardberechtigungen verfügt, besteht der nächste Schritt darin, einen Benutzer aus dieser Anmeldung zu erstellen. Zurzeit kann die Anmeldung eine Verbindung mit der verwalteten SQL-Instanz herstellen und alle Datenbanken sehen, aber nicht mit den Datenbanken interagieren. Wenn Sie sich mit dem Microsoft Entra-Konto anmelden, das über die Standardberechtigungen verfügt, und versuchen, die neu erstellte Datenbank zu erweitern, wird der folgende Fehler angezeigt:

Screenshot einer Fehlermeldung aus dem SSMS-Objekt-Explorer, die lautet:

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 wird ein Aufruf zurückgegeben SUSER_SIDNULL, da der angegebene Microsoft Entra-Benutzer nicht Teil der sys.server_principals Tabelle ist. Daher kann der Zugriff auf bestimmte gespeicherte Prozeduren oder eine Liste der erteilten Berechtigungen in diesem Fall eingeschränkt sein.

  1. Melden Sie sich bei Ihrer sql-verwalteten Instanz mit einem Sysadmin-Konto in SQL Server Management Studio 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 Mygroup der Microsoft Entra-Gruppe 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

    Geben Sie beim Erstellen eines BENUTZERS aus einer Microsoft Entra-Anmeldung die user_name mit demselben login_name an 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 Tabelle TestTable , die zuvor vom sysadmin erstellt wurde, 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 mit sql Server Management Studio bei Ihrer verwalteten SQL-Instanz mit einem Sysadmin-Konto an.

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

  3. Gewähren Sie dem Microsoft Entra-Benutzer die db_datareader Datenbankrolle mithilfe der folgenden T-SQL-Syntax:

    Use <Database Name> -- provide your database name
    ALTER ROLE db_datareader ADD MEMBER user_name
    GO
    

    Im folgenden Beispiel werden der Benutzer bob@aadsqlmi.net und die Gruppe mygroupmit db_datareader Berechtigungen für die MyMITestDB-Datenbank bereitgestellt:

    USE MyMITestDB
    GO
    ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net]
    GO
    ALTER ROLE db_datareader ADD MEMBER [mygroup]
    GO
    
  4. Überprüfen Sie, ob der In der Datenbank erstellte Microsoft Entra-Benutzer vorhanden ist, indem Sie den folgenden Befehl ausführen:

    SELECT * FROM sys.database_principals
    GO
    
  5. Erstellen Sie eine neue Verbindung mit der sql-verwalteten Instanz mit dem Benutzer, der der rolle db_datareader hinzugefügt wurde.

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

    Screenshot des Objekt-Explorers in SSMS mit der Ordnerstruktur für Tabellen in MyMITestDB. Der dbo. Der TestTable-Ordner 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 zurückgegebenen Spalten sollten wie im folgenden Screenshot dargestellt angezeigt werden:

    Screenshot der Registerkarte

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 mit sql Server Management Studio bei Ihrer verwalteten SQL-Instanz mit einem Sysadmin-Konto 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 EXECUTE AS LOGIN Anweisung:

    EXECUTE AS LOGIN = 'bob@aadsqlmi.net'
    GO
    SELECT SUSER_SNAME()
    REVERT
    GO
    

Hinweis

Nur ANMELDUNGen auf SQL-Serverebene, 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 mit sql Server Management Studio bei Ihrer verwalteten SQL-Instanz mit einem Sysadmin-Konto 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 die Benutzer-Mygroup in der neuen Datenbank MyMITestDB2 zu erstellen und Berechtigungen für diese Datenbank SELECT zu erteilen:

    USE MyMITestDB2
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    GRANT SELECT TO [mygroup]
    GO
    
  5. Melden Sie sich mit SQL Server Management Studio als Mitglied der Mygroup der Microsoft Entra-Gruppe bei der SQL-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.
  • Microsoft Entra-Anmeldungen können Datenbanksicherungs- und Wiederherstellungsvorgänge ausführen.
  • Überwachung aller Anweisungen in Verbindung mit Microsoft Entra-Anmeldungen und Authentifizierungsereignissen.
  • Dedizierte Administratorverbindung für Microsoft Entra-Anmeldungen, die Mitglieder der Sysadmin-Serverrolle sind.
  • 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.