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 zu sichern.
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 wurde zuvor als Azure Active Directory (Azure AD) bezeichnet.
Voraussetzungen
Stellen Sie sicher, dass Sie folgende Voraussetzungen erfüllen, um das Tutorial abzuschließen:
- 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. Ähnlich wie bei einer isolierten SQL Server Umgebung benötigen Anwendungen oder Benutzer Zugriff auf das SQL Managed Instance Netzwerk (VNet), bevor eine Verbindung hergestellt werden kann. Weitere Informationen finden Sie unter Connect your application to SQL Managed Instance.
Es ist auch möglich, einen Dienstendpunkt in einer von 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 Configure public endpoint in Azure SQL Managed Instance.
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 Provision eines Microsoft Entra Administrators für SQL Managed Instance.
Beispiele für das Herstellen einer Verbindung mit SQL Managed Instance finden Sie in den folgenden Artikeln:
- Quickstart: Konfigurieren Azure VM zum Herstellen einer Verbindung mit SQL Managed Instance
- Quickstart: Konfigurieren einer Point-to-Site-Verbindung zum SQL Managed Instance von der lokalen Umgebung
Stellen Sie mit einem sysadmin SQL-Login oder dem Microsoft Entra-Administrator über SQL Server Management Studio (SSMS) eine Verbindung zu Ihrer verwalteten SQL-Instanz her.
Klicken Sie in 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).
Berechtigungen zum Erstellen von Anmeldungen gewähren
Vorhandene Anmeldungen müssen über entsprechende Berechtigungen verfügen oder Teil der entsprechenden Serverrollen sein, um andere Microsoft Entra Anmeldungen zu erstellen.
SQL-Authentifizierungsanmeldungen
Wenn die Anmeldung ein SQL-authentifizierungsbasierter Serverprinzipal ist, muss ihr die Rolle sysadmin zugewiesen werden, um Anmeldungen für Microsoft Entra-Konten zu erstellen.
Microsoft Entra Authentifizierungsanmeldungen
- Wenn die Anmeldung ein Microsoft Entra Serverprinzipal ist, muss sie entweder der Rolle sysadmin oder der Rolle securityadmin zugewiesen werden, um Logins für andere Microsoft Entra Benutzer, Gruppen und Anwendungen zu erstellen.
- Mindestens muss die Berechtigung
ALTER ANY LOGINgewährt werden, um andere Microsoft Entra Logins zu erstellen. - Standardmäßig sind die Standardberechtigungen, die neu erstellten Microsoft Entra Anmeldungen in
mastererteilt wurden,CONNECT SQLundVIEW ANY DATABASE. - Die Serverrolle sysadmin kann vielen Microsoft Entra Logins in einer SQL Managed Instance 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 in Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Gewähren Sie den Microsoft Entra Anmeldedaten die Serverrolle sysadmin 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
Zusätzliche Microsoft Entra Anmeldekonten erstellen mithilfe von SSMS
Nachdem die Microsoft Entra Anmeldung erstellt und sysadmin Berechtigungen erteilt wurde, kann diese Anmeldung zusätzliche Anmeldungen mithilfe der Klausel FROM EXTERNAL PROVIDER mit CREATE LOGIN erstellen.
Stellen Sie eine Verbindung mit der verwalteten SQL-Instanz mit der Microsoft Entra-Anmeldung her, indem Sie Verbinden mit Server in SQL Server Management Studio (SSMS) auswählen.
- Geben Sie Ihren SQL Managed Instance Hostnamen in Servername ein.
- Wählen Sie für AuthenticationMicrosoft Entra MFA aus, um ein mehrstufiges Anmeldefenster für die Authentifizierung anzuzeigen. Anmelden. Weitere Informationen finden Sie unter Universelle Authentifizierung (SSMS-Unterstützung für Multi-Faktor-Authentifizierung).
Klicken Sie in 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 anderes 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.netfederated mit der Domäne Microsoft Entraaadsqlmi.onmicrosoft.comist.Führen Sie den folgenden T-SQL-Befehl aus. Verbundene Microsoft Entra-Konten sind der Ersatz für SQL Managed Instance von lokalen Windows-Anmeldungen und -Benutzern.
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 in 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 Sie die Anmeldung zu SQL Managed Instance hinzufügen. Siehe Erstellen Sie eine Basisgruppe und fügen Sie Mitglieder mit Microsoft Entra ID hinzu. Erstellen Sie eine Gruppe "Meine Gruppe", und fügen Sie dieser Gruppe Mitglieder hinzu.
Öffnen Sie ein neues Abfragefenster in SQL Server Management Studio.
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 in Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage für die neue Verbindung aus.
Überprüfen Sie die Serverberechtigungen für die neu erstellte Microsoft Entra Anmeldung, indem Sie den folgenden Befehl ausführen:
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
Azure SQL unterstützt Microsoft Entra Prinzipale als Benutzer und Anmeldungen und erweitert dies auf interne und externe Gastbenutzer von Microsoft Entra External ID. Gastbenutzer können sowohl einzeln als auch als Teil einer Gruppe wie jeder andere Microsoft Entra Benutzer in Azure SQL verwendet werden. Wenn Gastbenutzer in der Lage sein sollen, andere Microsoft Entra Serveranmeldungen oder Datenbankbenutzer zu erstellen, müssen sie über Berechtigungen zum Lesen anderer Identitäten im Microsoft Entra Verzeichnis verfügen. Diese Berechtigung ist auf Verzeichnisebene konfiguriert. Weitere Informationen finden Sie unter Zugriffsberechtigungen 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 Erteilen von Datenbankberechtigungen finden Sie unter Getting Started with Datenbank-Engine Permissions.
Erstellen eines Microsoft Entra Benutzers und Erstellen 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 den Wert NULL zurück, da der angegebene Microsoft Entra-Benutzer nicht Teil der Tabelle sys.server_principals ist.
Daher kann der Zugriff auf bestimmte gespeicherte Prozeduren oder eine Liste der erteilten Berechtigungen in diesem Fall eingeschränkt sein.
Melden Sie sich mit einem sysadminKonto in SQL Server Management Studio bei Ihrer verwalteten SQL-Instanz an.
Klicken Sie in 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 aus 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] GOEs wird auch unterstützt, einen Microsoft Entra Benutzer aus einem Microsoft Entra Anmeldekonto zu erstellen, das zu einer Gruppe gehört.
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] GOAlle Benutzer, die mygroup angehören, können auf die Datenbank MyMITestDB zugreifen.
Wichtig
Geben Sie beim Erstellen eines USER von einem Microsoft Entra-Login den user_name als denselben login_name von
LOGINan.Weitere Informationen finden Sie unter CREATE USER.
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 Datenbankebenenrollen
Damit dem Benutzer Daten in der Datenbank angezeigt werden, können wir ihm Rollen auf Datenbankebene zuweisen.
Melden Sie sich bei Ihrer verwalteten SQL-Instanz mit einem sysadminKonto mit SQL Server Management Studio an.
Klicken Sie in Objekt-Explorer mit der rechten Maustaste auf den Server, und wählen Sie Neue Abfrage aus.
Gewähren Sie dem Microsoft Entra Benutzer die Datenbankrolle db_datareader 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 dem Benutzer
bob@aadsqlmi.netund der Gruppe mygroupdb_datareader-Berechtigungen für die MyMITestDB-Datenbank vergeben: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 zur verwalteten SQL-Instanz mit dem Benutzer, der zur db_datareader-Rolle hinzugefügt wurde.
Erweitern Sie die Datenbank in Objekt-Explorer, um die Tabelle anzuzeigen.
Öffnen Sie ein neues Abfragefenster, und führen Sie die folgende
SELECTAnweisung aus:SELECT * FROM TestTableSind Sie in der Lage, die Daten aus der Tabelle zu sehen? Die zurückgegebenen Spalten sollten wie im folgenden Screenshot dargestellt angezeigt werden:
Microsoft Entra-Anmeldungen nachahmen
SQL Managed Instance unterstützt die Impersonation von Microsoft Entra-Anmeldungen.
Testen der Nachahmung
Melden Sie sich bei Ihrer verwalteten SQL-Instanz mit einem sysadminKonto mit SQL Server Management Studio an.
Klicken Sie in 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 SQL-Server-Anmeldungen auf Serverebene, die Teil der sysadmin-Rolle sind, können die folgenden Vorgänge ausführen, die auf Microsoft Entra Hauptbenutzer abzielen.
EXECUTE AS USEREXECUTE AS LOGIN
Verwenden datenbankübergreifender Abfragen
Datenbankübergreifende Abfragen werden für Microsoft Entra Konten mit Microsoft Entra Anmeldungen unterstützt. Zum Testen einer datenbankübergreifenden Abfrage mit einer Microsoft Entra Gruppe müssen wir eine andere Datenbank und Tabelle erstellen. Falls Sie bereits über eine weitere Datenbank und Tabelle verfügen, können Sie die Erstellung überspringen.
Melden Sie sich bei Ihrer verwalteten SQL-Instanz mit einem sysadminKonto mit SQL Server Management Studio an.
Klicken Sie in 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 den Benutzer mygroup in der neuen Datenbank MyMITestDB2 zu erstellen und
SELECTBerechtigungen für diese Datenbank an mygroup zu 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 Microsoft Entra gruppe mygroup 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
- SQL-Agent-Verwaltung und Auftragsausführungen werden für Microsoft Entra Anmeldungen unterstützt.
- Microsoft Entra Anmeldungen können Datenbanksicherungs- und Wiederherstellungsvorgänge ausführen.
- Auditing aller Erklärungen im Zusammenhang mit Microsoft Entra Anmelde- und Authentifizierungsereignissen.
- Dedizierte Administratorverbindung für Microsoft Entra-Anmeldungen, die Mitglieder der sysadmin Server-Rolle sind.
- Microsoft Entra Anmeldungen werden mit dem Hilfsprogramm sqlcmd und SQL Server Management Studio unterstützt.
- Anmeldetrigger werden für Anmeldeereignisse unterstützt, die von Microsoft Entra Anmeldungen stammen.
- Service Broker und DB-E-Mail können mit Microsoft Entra Anmeldungen eingerichtet werden.
Verwandte Inhalte
- SQL Managed Instance Sicherheitsfunktionen
- Einführung in die Auditierung von Azure SQL Managed Instanzen
- Immer verschlüsselt
- Erweiterte Bedrohungsschutz in Azure SQL Managed Instance konfigurieren
- Dynamische Datenmaskierung
- Sicherheit auf Zeilenebene
- Transparent Data Encryption (TDE)
- What is Azure SQL Managed Instance?