Zugreifen auf Azure SQL-Datenbank oder Azure Synapse Analytics mit verwalteten Identitäten aus einem Azure Stream Analytics-Auftrag

Azure Stream Analytics unterstützt die Authentifizierung über verwaltete Identitäten für Ausgabesenken von Azure SQL-Datenbank und Azure Synapse Analytics. Verwaltete Identitäten heben die Einschränkungen benutzerbasierter Authentifizierungsmethoden auf, wie etwa die Notwendigkeit einer erneuten Authentifizierung aufgrund von Kennwortänderungen oder Benutzertoken, die alle 90 Tage ablaufen. Wenn Sie die Notwendigkeit einer manuellen Authentifizierung aufheben, können Ihre Stream Analytics-Bereitstellungen vollständig automatisiert werden.

Bei einer verwalteten Identität handelt es sich um eine in Microsoft Entra ID registrierte verwaltete Anwendung, die einen bestimmten Stream Analytics-Auftrag repräsentiert. Die verwaltete Anwendung wird zur Authentifizierung bei einer Zielressource verwendet. In diesem Artikel wird gezeigt, wie Sie verwaltete Identitäten für Azure SQL-Datenbank- oder Azure Synapse Analytics-Ausgaben eines Stream Analytics-Auftrags über das Azure-Portal aktivieren.

Übersicht

In diesem Artikel werden die erforderlichen Schritte zum Verbinden Ihres Stream Analytics-Auftrags mit Ihrer Azure SQL-Datenbank oder dem Azure Synapse Analytics SQL-Pool mithilfe des Authentifizierungsmodus „Verwaltete Identität“ beschrieben.

  • Sie erstellen zunächst eine dem System zugewiesene verwaltete Identität für Ihren Stream Analytics-Auftrag. Dies ist die Identität Ihres Auftrags in Microsoft Entra ID.

  • Fügen Sie Ihrem SQL-Server oder Synapse-Arbeitsbereich einen Active Directory-Administrator hinzu, der die Microsoft Entra-Authentifizierung (verwaltete Identität) für diese Ressource aktiviert.

  • Als nächstes erstellen Sie einen enthaltenen Benutzer, der die Identität des Stream Analytics-Auftrags in der Datenbank darstellt. Wann immer der Stream Analytics-Auftrag mit Ihrer SQL-Datenbank oder Synapse SQL DB-Ressource interagiert, ist dies die Identität, auf die er sich bezieht, um zu prüfen, über welche Berechtigungen Ihr Stream Analytics-Auftrag verfügt.

  • Erteilen Sie Ihrem Stream Analytics-Auftrag die Berechtigung, auf Ihre SQL-Datenbank oder Synapse SQL-Pools zuzugreifen.

  • Fügen Sie schließlich Ihre Azure SQL-Datenbank bzw. Azure Synapse Analytics als Ausgabe im Stream Analytics-Auftrag hinzu.

Voraussetzungen

Folgendes ist für die Verwendung dieses Features erforderlich:

  • Ein Azure Stream Analytics-Auftrag

  • Eine Azure SQL-Datenbank-Ressource

Erstellen einer verwalteten Identität

Erstellen Sie zuerst eine verwaltete Identität für den Azure Stream Analytics-Auftrag.

  1. Öffnen Sie im Azure-Portal den Azure Stream Analytics-Auftrag.

  2. Wählen Sie im linken Navigationsmenü unter Konfigurieren die Option Verwaltete Identität aus. Aktivieren Sie dann das Kontrollkästchen neben Systemseitig zugewiesene verwaltete Identität verwenden, und wählen Sie Speichern aus.

    Select system-assigned managed identity

    Ein Dienstprinzipal für die Identität des Stream Analytics-Auftrags wird in Microsoft Entra ID erstellt. Der Lebenszyklus der neu erstellten Identität wird von Azure verwaltet. Wenn der Stream Analytics-Auftrag gelöscht wird, wird die zugeordnete Identität (also der Dienstprinzipal) von Azure automatisch ebenfalls gelöscht.

  3. Sie können auch zu benutzerseitig zugewiesenen verwalteten Identitäten wechseln.

  4. Wenn Sie die Konfiguration speichern, wird die Objekt-ID (OID) des Dienstprinzipals als Prinzipal-ID aufgeführt, wie hier gezeigt:

    Object ID shown as Principal ID

    Der Dienstprinzipal weist den gleichen Namen auf wie der Stream Analytics-Auftrag. Wenn der Name des Auftrags z. B. MyASAJob lautet, erhält auch der Dienstprinzipal den Namen MyASAJob.

Auswählen eines Active Directory-Administrators

Nachdem Sie eine verwaltete Identität erstellt haben, wählen Sie einen Active Directory-Administrator aus.

  1. Navigieren Sie zu Ihrer Azure SQL-Datenbank oder Azure Synapse Analytics SQL-Poolressource, und wählen Sie die SQL Server-Instanz bzw. den Synapse-Arbeitsbereich aus, unter dem sich die Ressource befindet. Den Link zu diesen finden Sie auf der Ressourcenübersichtsseite neben Servername oder Arbeitsplatzname.

  2. Wählen Sie Active Directory-Administrator oder SQL Active Directory-Administrator entsprechend für SQL Server und Synapse-Arbeitsbereich unter Einstellungen aus. Wählen Sie dann Administrator festlegen aus.

    Active Directory admin page

  3. Suchen Sie auf der Seite „Active Directory-Administrator“ nach einem Benutzer oder einer Gruppe, den bzw. die Sie als Administrator für die SQL Server-Instanz festlegen möchten, und klicken Sie auf Auswählen. Dies wird der Benutzer sein, der im nächsten Abschnitt den Benutzer für eigenständige Datenbank erstellen kann.

    Add Active Directory admin

    Auf der Seite „Active Directory-Administrator“ werden alle Mitglieder und Gruppen in Ihrem Active Directory-Verzeichnis angezeigt. Abgeblendete Benutzer oder Gruppen können nicht ausgewählt werden, da sie nicht als Microsoft Entra-Administratoren unterstützt werden. Beachten Sie die Liste von unterstützten Administratoren im Abschnitt Funktionen und Einschränkungen von Microsoft Entra von Verwenden der Microsoft Entra-Authentifizierung für die Authentifizierung mit SQL-Datenbank oder Azure Synapse.

  4. Wählen Sie auf der Seite Active Directory-Administrator die Option Speichern aus. Der Prozess zum Ändern des Administrators dauert einige Minuten.

Erstellen eines Benutzers einer eigenständigen Datenbank

Als Nächstes erstellen Sie eine*n Benutzer*in einer eigenständigen Datenbank in Ihrer Azure SQL- oder Azure Synapse-Datenbankinstanz, die*der der Microsoft Entra-Identität zugeordnet ist. Der Benutzer einer eigenständigen Datenbank verfügt über keine Anmeldung für die primäre Datenbank, ist aber einer Identität im Verzeichnis zugeordnet, die wiederum mit der Datenbank verknüpft ist. Bei der Microsoft Entra-Identität kann es sich entweder um ein einzelnes Benutzerkonto oder um eine Gruppe handeln. In diesem Fall möchten Sie einen Benutzer einer eigenständigen Datenbank für den Stream Analytics-Auftrag erstellen.

Weitere Informationen finden Sie im folgenden Artikel zu Hintergrundinformationen der Microsoft Entra-Integration: Universelle Authentifizierung bei SQL-Datenbank und Azure Synapse Analytics (SSMS-Unterstützung für MFA).

  1. Stellen Sie über SQL Server Management Studio eine Verbindung mit Ihrer Datenbank in Azure SQL-Datenbank oder Azure Synapse her. Der Benutzername ist ein*e Microsoft Entra-Benutzer*in mit der Berechtigung ALTER ANY USER. Der Administrator, den Sie auf dem SQL Server festlegen, ist ein Beispiel dafür. Verwenden Sie Microsoft Entra ID – Universal mit MFA-Authentifizierung.

    Connect to SQL Server

    Der Servername <SQL Server name>.database.windows.net kann in verschiedenen Regionen unterschiedlich sein. Beispielsweise sollte in der Region China <SQL Server name>.database.chinacloudapi.cn verwendet werden.

    Sie können eine bestimmte Datenbank in Azure SQL-Datenbank oder Azure Synapse angeben. Dazu navigieren Sie zu Optionen > Verbindungseigenschaften > Mit Datenbank verbinden.

    SQL Server connection properties

  2. Wenn Sie zum ersten Mal eine Verbindung herstellen, wird möglicherweise das folgende Fenster angezeigt:

    New firewall rule window

    1. Wenn dies der Fall ist, wechseln Sie zu Ihrer SQL Server/Synapse Workspace-Ressource im Azure-Portal. Öffnen Sie unter dem Abschnitt Sicherheit die Seite Firewalls und virtuelles Netzwerk/Firewalls.
    2. Fügen Sie eine neue Regel mit einem beliebigen Regelnamen hinzu.
    3. Verwenden Sie die Von-IP-Adresse im Fenster Neue Firewallregel als Start-IP.
    4. Verwenden Sie die An-IP-Adresse im Fenster Neue Firewallregel als End-IP.
    5. Wählen Sie Speichern aus, und versuchen Sie erneut, eine Verbindung von SQL Server Management Studio herzustellen.
  3. Nachdem eine Verbindung hergestellt wurde, erstellen Sie den Benutzer einer eigenständigen Datenbank. Mit dem folgenden SQL-Befehl wird ein Benutzer einer eigenständigen Datenbank erstellt, der denselben Namen wie der Stream Analytics-Auftrag hat. Stellen Sie sicher, dass Sie ASA_JOB_NAME in eckige Klammern einschließen. Verwenden Sie die folgende T-SQL-Syntax, und führen Sie die Abfrage aus.

    CREATE USER [ASA_JOB_NAME] FROM EXTERNAL PROVIDER;
    

    Um zu überprüfen, ob Sie den enthaltenen Datenbankbenutzer ordnungsgemäß hinzugefügt haben, führen Sie den folgenden Befehl in SSMS unter der zugehörigen Datenbank aus und überprüfen Sie, ob sich Ihr ASA_JOB_NAME unter der Spalte „Name“ befindet.

    SELECT * FROM <SQL_DB_NAME>.sys.database_principals
    WHERE type_desc = 'EXTERNAL_USER'
    
  4. Damit Microsoft Entra ID überprüfen kann, ob der Stream Analytics-Auftrag Zugriff auf die SQL-Datenbank hat, müssen wir Microsoft Entra die Erlaubnis zur Kommunikation mit der Datenbank erteilen. Navigieren Sie dazu im Azure-Portal wieder auf die Seite „Firewalls und virtuelles Netzwerk/Firewalls“, und aktivieren Sie „Azure-Diensten und -Ressourcen den Zugriff auf diesen Server/Arbeitsbereich erlauben“.

    Firewall and virtual network

Erteilen von Berechtigungen für einen Stream Analytics-Auftrag

Nachdem Sie einen Benutzer einer eigenständigen Datenbank erstellt und Zugriff auf Azure-Dienste erteilt haben, wie im vorherigen Abschnitt beschrieben, hat Ihr Stream Analytics-Auftrag von der verwalteten Identität die Berechtigung CONNECT. Damit kann er mithilfe der verwalteten Identität eine Verbindung mit Ihrer Azure SQL-Datenbank-Ressource herstellen. Es empfiehlt sich, dem Stream Analytics-Auftrag die Berechtigungen SELECT und INSERT zu erteilen, da diese später im Stream Analytics-Workflow benötigt werden. Mithilfe der SELECT-Berechtigung kann der Auftrag seine Verbindung mit der Tabelle in Azure SQL-Datenbank testen. Die INSERT-Berechtigung ermöglicht das Testen von End-to-End-Abfragen in Stream Analytics, nachdem Sie eine Eingabe und die Azure SQL-Datenbank-Ausgabe konfiguriert haben.

Sie können dem Stream Analytics-Auftrag diese Berechtigungen mithilfe von SQL Server Management Studio erteilen. Weitere Informationen finden Sie in der Referenz zu GRANT (Transact-SQL).

Um nur Berechtigung für eine bestimmte Tabelle oder ein bestimmtes Objekt in der Datenbank zu erteilen, verwenden Sie die folgende T-SQL-Syntax, und führen Sie die Abfrage aus.

GRANT CONNECT TO ASA_JOB_NAME;
GRANT SELECT, INSERT ON OBJECT::TABLE_NAME TO ASA_JOB_NAME;

Alternativ können Sie in SQL Server Management Studio mit der rechten Maustaste auf Ihre Datenbank in Azure SQL-Datenbank oder Azure Synapse klicken und Eigenschaften > Berechtigungen auswählen. Im Berechtigungsmenü wird der zuvor hinzugefügte Stream Analytics-Auftrag angezeigt, und Sie können nach Belieben manuell Berechtigungen erteilen oder verweigern.

Um alle Berechtigungen anzuzeigen, die Sie Ihrem Benutzer ASA_JOB_NAME hinzugefügt haben, führen Sie den folgenden Befehl in SSMS unter der zugehörigen Datenbank aus:

SELECT dbprin.name, dbprin.type_desc, dbperm.permission_name, dbperm.state_desc, dbperm.class_desc, object_name(dbperm.major_id)
FROM sys.database_principals dbprin
LEFT JOIN sys.database_permissions dbperm
ON dbperm.grantee_principal_id = dbprin.principal_id
WHERE dbprin.name = '<ASA_JOB_NAME>'

Erstellen einer Azure SQL-Datenbank- oder Azure Synapse-Ausgabe

Hinweis

Wenn Sie SQL Managed Instance (MI) als Referenzeingabe verwenden, müssen Sie einen öffentlichen Endpunkt in Ihrer Instanz von SQL Managed Instance konfigurieren. Sie müssen den vollqualifizierten Domänennamen mit dem Port angeben, wenn Sie die Eigenschaft database konfigurieren. Beispiel: sampleserver.public.database.windows.net,3342.

Nachdem die verwaltete Identität konfiguriert wurde, können Sie dem Stream Analytics-Auftrag eine Azure SQL-Datenbank- oder Azure Synapse-Ausgabe hinzufügen.

Vergewissern Sie sich, dass Sie in Ihrer SQL-Datenbank eine Tabelle mit dem passenden Ausgabeschema erstellt haben. Der Name dieser Tabelle ist eine der erforderlichen Eigenschaften, die eingesetzt werden müssen, wenn Sie dem Stream Analytics-Auftrag die SQL-Datenbank-Ausgabe hinzufügen. Achten Sie außerdem darauf, dass der Auftrag die Berechtigungen SELECT und INSERT besitzt, um die Verbindung zu testen und Stream Analytics-Abfragen auszuführen. Lesen Sie den Abschnitt Erteilen von Berechtigungen für einen Stream Analytics-Auftrag, wenn Sie dies noch nicht getan haben.

  1. Kehren Sie zum Stream Analytics-Auftrag zurück, und navigieren Sie unter Auftragstopologie zur Seite Ausgaben.

  2. Wählen Sie Hinzufügen > SQL-Datenbank aus. Wählen Sie im Fenster mit den Ausgabeeigenschaften der SQL-Datenbank-Ausgabesenke in der Dropdownliste mit Authentifizierungsmodi die Option Verwaltete Identität aus.

  3. Geben Sie die restlichen Eigenschaften an. Weitere Informationen zum Erstellen einer SQL-Datenbank-Ausgabe finden Sie unter Erstellen einer SQL-Datenbank-Ausgabe mit Stream Analytics. Wenn Sie fertig sind, wählen Sie Speichern aus.

  4. Nachdem Sie auf Speichern geklickt haben, sollte automatisch ein Verbindungstest zu Ihrer Ressource ausgelöst werden. Sobald dies erfolgreich abgeschlossen ist, haben Sie Ihren Stream Analytics-Auftrag erfolgreich für die Verbindung mit Ihrer Azure SQL-Datenbank oder Synapse SQL-Datenbank unter Verwendung des Authentifizierungsmodus „Verwaltete Identität“ konfiguriert.

Zusätzliche Schritte für SQL-Verweisdaten

Azure Stream Analytics erfordert, dass Sie bei Verwendung von SQL-Verweisdaten das Speicherkonto Ihres Auftrags konfigurieren. Dieses Speicherkonto wird zum Speichern von Inhalten zu Ihrem Stream Analytics-Auftrag verwendet, wie z. B. Momentaufnahmen für die SQL-Verweisdaten.

Führen Sie die folgenden Schritte aus, um ein zugehöriges Speicherkonto einzurichten:

  1. Wählen Sie auf der Seite Stream Analytics-Auftrag im linken Menü unter Konfigurieren die Option Speicherkontoeinstellungen aus.

  2. Wählen Sie auf der Seite Speicherkontoeinstellungen die Option Speicherkonto hinzufügen aus.

  3. Befolgen Sie die Anweisungen zum Konfigurieren Ihrer Speicherkontoeinstellungen.

    Screenshot of the Storage account settings page of a Stream Analytics job.

Wichtig

  • Zum Authentifizieren mit der Verbindungszeichenfolge müssen Sie die Firewalleinstellungen des Speicherkontos deaktivieren.
  • Wenn Sie sich mit einer verwalteten Identität authentifizieren, müssen Sie Ihren Stream Analytics-Auftrag der Zugriffssteuerungsliste des Speicherkontos mit der Rolle „Mitwirkender an Storage-Blobdaten“ und der Rolle „Mitwirkender an Storage-Tabellendaten“ hinzufügen. Wenn Sie dem Auftrag keinen Zugriff gewähren, kann er keine Vorgänge ausführen. Weitere Informationen zum Gewähren von Zugriff finden Sie unter Verwenden von Azure RBAC zum Zuweisen des Zugriffs einer verwalteten Identität auf eine andere Ressource.

Zusätzliche Schritte mit der benutzerseitig zugewiesenen verwalteten Identität

Wiederholen Sie die Schritte, wenn Sie die benutzerseitig zugewiesene verwaltete Identität ausgewählt haben, um ASA mit Synapse zu verbinden:

  1. Erstellen Sie einen Benutzer für eine eigenständige Datenbank. Ersetzen Sie ASA_Job_Name durch die benutzerseitig zugewiesene verwaltete Identität. Betrachten Sie das folgende Beispiel.
    CREATE USER [User-Assigned Managed Identit] FROM EXTERNAL PROVIDER;
    
  2. Erteilen Sie der benutzerseitig zugewiesenen verwalteten Identität Berechtigungen. Ersetzen Sie ASA_Job_Name durch die benutzerseitig zugewiesene verwaltete Identität.

Weitere Informationen finden Sie in den obigen Abschnitten.

Entfernen der verwalteten Identität

Die für einen Stream Analytics-Auftrag erstellte verwaltete Identität wird nur gelöscht, wenn der Auftrag gelöscht wird. Es gibt keine Möglichkeit, die verwaltete Identität zu löschen, ohne den Auftrag zu löschen. Wenn Sie die verwaltete Identität nicht mehr verwenden möchten, können Sie die Authentifizierungsmethode für die Ausgabe ändern. Die verwaltete Identität bleibt weiterhin bestehen, bis der Auftrag gelöscht wird, und wird verwendet, wenn Sie die Authentifizierung mit der verwalteten Identität erneut verwenden.

Nächste Schritte