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.
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:
- SQL Server Management Studio (SSMS)
- Eine verwaltete SQL-Instanz
- Folgen Sie diesem Artikel: Schnellstart: Erstellen einer sql-verwalteten Instanz
- In der Lage, auf Ihre verwaltete SQL-Instanz zuzugreifen und einen Microsoft Entra-Administrator für die verwaltete SQL-Instanz bereitzustellen. Weitere Informationen finden Sie unter:
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:
- 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 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.
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 GOIn diesem Beispiel wird eine Anmeldung für das Konto
nativeuser@aadsqlmi.onmicrosoft.comerstellt.USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GOWählen Sie auf der Symbolleiste die Option Ausführen aus, um die Anmeldung zu erstellen.
Überprüfen Sie die neu hinzugefügte Anmeldung, indem Sie den folgenden T-SQL-Befehl ausführen:
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 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 LOGINBerechtigung erteilt werden, um andere Microsoft Entra-Anmeldungen zu erstellen. - Standardmäßig sind die Standardberechtigungen, die neu erstellten Microsoft Entra-Anmeldungen
mastergewährt werdenCONNECT SQL, undVIEW 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:
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.
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Gewähren Sie der Microsoft Entra-Anmeldung die Sysadmin-Serverrolle mithilfe der folgenden T-SQL-Syntax:
ALTER SERVER ROLE sysadmin ADD MEMBER login_name GOIm 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
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.
- Geben Sie den Hostnamen Ihrer SQL Managed Instance-Instanz unter Servername ein.
- 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).
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 GOIn diesem Beispiel wird eine Anmeldung für den Microsoft Entra-Benutzer
bob@aadsqlmi.neterstellt, dessen Domäneaadsqlmi.netmit der Microsoft Entra-Domäneaadsqlmi.onmicrosoft.comist.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 GOErstellen 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.
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 "Meine Gruppe", und fügen Sie dieser Gruppe 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 GOMelden 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.
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. 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:
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.
Melden Sie sich bei Ihrer sql-verwalteten Instanz mit einem Sysadmin-Konto in SQL Server Management Studio 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 GOIm folgenden Beispiel wird der Benutzer
bob@aadsqlmi.neterstellt, ausgehend vom Anmeldenamenbob@aadsqlmi.net:USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GOEin 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] GOAlle 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).
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 Tabelle TestTable , die zuvor vom sysadmin erstellt wurde, 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 mit sql Server Management Studio bei Ihrer verwalteten SQL-Instanz mit einem Sysadmin-Konto an.
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
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 GOIm folgenden Beispiel werden der Benutzer
bob@aadsqlmi.netund 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Ü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 GOErstellen Sie eine neue Verbindung mit der sql-verwalteten Instanz mit dem Benutzer, der der rolle db_datareader hinzugefügt wurde.
Erweitern Sie die Datenbank im Objekt-Explorer, um die Tabelle anzuzeigen.
Öffnen Sie ein neues Abfragefenster, und führen Sie die folgende
SELECTAnweisung aus:SELECT * FROM TestTableWerden Daten aus der Tabelle angezeigt? Die zurückgegebenen Spalten sollten wie im folgenden Screenshot dargestellt angezeigt 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 mit sql Server Management Studio bei Ihrer verwalteten SQL-Instanz mit einem Sysadmin-Konto 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(); GOVerwenden 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.nethandelt:Exec dbo.usp_DemoTesten Sie den Identitätswechsel mithilfe der
EXECUTE AS LOGINAnweisung: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 USEREXECUTE 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 mit sql Server Management Studio bei Ihrer verwalteten SQL-Instanz mit einem Sysadmin-Konto 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 die Benutzer-Mygroup in der neuen Datenbank MyMITestDB2 zu erstellen und Berechtigungen für diese Datenbank
SELECTzu erteilen:USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GOMelden 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
SELECTAnweisung aus:USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GODaraufhin 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.
Verwandte Inhalte
- Sicherheitsfeatures für verwaltete SQL-Instanzen
- Erste Schritte bei der Azure SQL Managed Instance-Überwachung
- Immer verschlüsselt
- Konfigurieren von Advanced Threat Protection in azure SQL Managed Instance
- Dynamische Datenmaskierung
- Sicherheit auf Zeilenebene
- Transparent Data Encryption (TDE)
- Was ist Azure SQL Managed Instance?