Implementieren einer Azure SQL-Datenbank-Firewall

Abgeschlossen

Wenn Sie z. B. einen neuen Server in Azure SQL-Datenbank oder Azure Synapse Analytics namens mysqlserver erstellen, blockiert eine Firewall auf Serverebene alle Zugriffe auf den öffentlichen Endpunkt für den Server (auf den unter mysqlserver.database.windows.net zugegriffen werden kann). Der Einfachheit halber wird SQL-Datenbank verwendet, um sowohl auf SQL-Datenbank als auch auf Azure Synapse Analytics zu verweisen. Dieser Artikel gilt nicht für Azure SQL Managed Instance. Informationen zur Netzwerkkonfiguration finden Sie unter Herstellen einer Verbindung zwischen einer Anwendung und einer verwalteten Azure SQL-Instanz.

Funktionsweise der Firewall

Verbindungsversuche über das Internet und Azure müssen die Firewall durchlaufen, bevor sie Ihren Server oder Ihre Datenbank erreichen, wie im folgenden Diagramm dargestellt.

Diagramm mit einem Beispiel für die Funktionsweise der Firewall.

Von Bedeutung

Azure Synapse unterstützt nur IP-Firewallregeln auf Serverebene. IP-Firewallregeln auf Datenbankebene werden nicht unterstützt.

IP-Firewallregeln auf Serverebene

Diese Regeln erlauben es Clients, auf Ihren gesamten Server zuzugreifen, d. h. auf alle vom Server verwalteten Datenbanken. Die Regeln werden in der Masterdatenbank gespeichert. Die maximale Anzahl von IP-Firewallregeln auf Serverebene für einen Server ist 256. Wenn die Einstellung „Azure-Diensten und -Ressourcen den Zugriff auf diesen Server erlauben“ aktiviert ist, zählt dies als einzelne Firewallregel für den Server.

IP-Firewallregeln auf Serverebene können über das Azure-Portal, mithilfe von PowerShell oder mithilfe von Transact-SQL-Anwendungen konfiguriert werden.

Hinweis

Die maximale Anzahl von IP-Firewallregeln auf Serverebene ist bei der Konfiguration im Azure-Portal auf 256 beschränkt.

  • Wenn Sie das Portal oder PowerShell verwenden möchten, müssen Sie der Besitzer oder ein Mitwirkender des Abonnements sein.
  • Wenn Sie Transact-SQL verwenden möchten, müssen Sie mithilfe einer Prinzipalanmeldung auf Serverebene oder als für Microsoft Entra-Administration zuständige Person eine Verbindung mit der Masterdatenbank herstellen. (Eine IP-Firewallregel auf Serverebene muss zuerst von einem Benutzer erstellt werden, der über Berechtigungen auf Azure-Ebene verfügt.)

Hinweis

Standardmäßig wird bei der Erstellung eines neuen logischen SQL-Servers über das Azure-Portal die Option, Azure-Dienste und Ressourcen den Zugriff auf diesen Server zu erlauben, auf "Nein" gesetzt.

Firewallregeln auf Datenbankebene

IP-Firewallregeln auf Datenbankebene gestatten Clients den Zugriff auf bestimmte (sichere) Datenbanken. Sie erstellen die Regeln für jede Datenbank (einschließlich der Masterdatenbank), die dann in der jeweiligen Datenbank gespeichert werden.

  • IP-Firewallregeln auf Datenbankebene für Master- und Benutzerdatenbanken können nur mithilfe von Transact-SQL-Anweisungen und erst nach der Konfiguration der ersten Firewall auf Serverebene erstellt und verwaltet werden.
  • Wenn Sie in der IP-Firewallregel auf Datenbankebene einen IP-Adressbereich angeben, der außerhalb des Bereichs der IP-Firewallregel auf Serverebene liegt, können nur die Clients auf die Datenbank zugreifen, die über IP-Adressen in dem auf Datenbankebene angegebenen Bereich verfügen.
  • Der Standardwert für die maximale Anzahl von IP-Firewallregeln auf Datenbankebene für eine Datenbank ist „256“. Weitere Informationen zum Konfigurieren von IP-Firewallregeln auf Datenbankebene finden Sie im Beispiel weiter unten in diesem Artikel und unter sp_set_database_firewall_rule (Azure SQL-Datenbank).

Empfehlungen zum Festlegen von Firewallregeln

Verwenden Sie nach Möglichkeit IP-Firewallregeln auf Datenbankebene. Diese Vorgehensweise erhöht die Sicherheit und macht Ihre Datenbank portabler. Verwenden Sie IP-Firewallregeln auf Serverebene für Administratoren. Darüber hinaus können Sie diese Regeln verwenden, wenn Sie über viele Datenbanken mit identischen Zugriffsanforderungen verfügen und die Datenbanken nicht einzeln konfigurieren möchten.

Hinweis

Informationen zu portablen Datenbanken im Kontext der Geschäftskontinuität finden Sie unter Authentifizierungsanforderungen für die Notfallwiederherstellung.

IP-Firewallregeln auf Serverebene im Vergleich zu Regeln auf Datenbankebene

Sollen Benutzende einer Datenbank vollständig von anderen Datenbanken isoliert werden?

Falls ja, verwenden Sie IP-Firewallregeln auf Datenbankebene, um Zugriff zu gewähren. Dadurch vermeiden Sie die Verwendung von IP-Firewallregeln auf Serverebene, die durch die Firewall den Zugriff auf alle Datenbanken ermöglichen. Dies würde die Sicherheit beeinträchtigen.

Benötigen Benutzende an den IP-Adressen Zugriff auf alle Datenbanken?

Falls ja, verwenden Sie IP-Firewallregeln auf Serverebene, um weniger IP-Firewallregeln konfigurieren zu müssen.

Haben die Person oder das Team, die bzw. das die IP-Firewallregeln konfiguriert, nur Zugriff über das Azure-Portal, über PowerShell oder über die REST-API?

Falls ja, müssen IP-Firewallregeln auf Serverebene verwendet werden. IP-Firewallregeln auf Datenbankebene können nur über Transact-SQL konfiguriert werden.

Werden der Person oder dem Team, die bzw. das die IP-Firewallregeln konfiguriert, übergeordnete Berechtigungen auf Datenbankebene verweigert?

Falls ja, verwenden Sie IP-Firewallregeln auf Serverebene. Sie benötigen auf der Datenbankebene mindestens die Berechtigung CONTROL DATABASE, um IP-Firewallregeln auf Datenbankebene über Transact-SQL konfigurieren zu können.

Verwaltet die Person oder das Team, die bzw. das die IP-Firewallregeln konfiguriert oder überwacht, die IP-Firewallregeln für viele (vielleicht sogar hunderte) Datenbanken zentral?

In diesem Fall hängen die Best Practices von Ihren Anforderungen und Ihrer Umgebung ab. IP-Firewallregeln auf Serverebene sind möglicherweise einfacher zu konfigurieren, doch durch Skripterstellung können Sie Regeln auf Datenbankebene konfigurieren. Selbst wenn Sie IP-Firewallregeln auf Serverebene verwenden, müssen Sie möglicherweise IP-Firewallregeln auf Datenbankebene überprüfen, um zu ermitteln, ob Benutzer*innen mit der CONTROL-Berechtigung für die Datenbank IP-Firewallregeln auf Datenbankebene erstellen.

Kann ich eine Kombination aus IP-Firewallregeln auf Serverebene und IP-Firewallregeln auf Datenbankebene verwenden?

Ja. Bestimmte Benutzer (z. B. Administratoren) benötigen möglicherweise IP-Firewallregeln auf Serverebene. Andere Benutzer, z. B. Benutzer einer Datenbankanwendung, benötigen möglicherweise IP-Firewallregeln auf Datenbankebene.

Verbindungen über das Internet

Wenn ein Computer versucht, über das Internet eine Verbindung mit dem Server herzustellen, prüft die Firewall zunächst die Ursprungs-IP-Adresse der Anforderung anhand von IP-Firewallregeln auf Serverebene für die Datenbank, die von der Verbindung angefordert wird.

  • Liegt die Adresse innerhalb eines Bereichs, der in den IP-Firewallregeln auf Datenbankebene angegeben ist, wird die Verbindung mit der Datenbank gewährt, die die Regel enthält.
  • Liegt die Adresse nicht innerhalb eines Bereichs in den IP-Firewallregeln auf Datenbankebene, überprüft die Firewall die IP-Firewallregeln auf Serverebene. Wenn die Adresse innerhalb eines Bereichs in den IP-Firewallregeln auf Serverebene liegt, wird die Verbindung gewährt. IP-Firewallregeln auf Serverebene gelten für alle vom Server verwalteten Datenbanken.
  • Liegt die Adresse nicht innerhalb eines Bereichs in einer der IP-Firewallregeln auf Datenbank- oder Serverebene, ist die Verbindungsanforderung nicht erfolgreich.

Hinweis

Wenn Sie auf Ihrem lokalen Computer auf Azure SQL-Datenbank zugreifen möchten, stellen Sie sicher, dass die Firewall in Ihrem Netzwerk und auf Ihrem lokalen Computer ausgehende Kommunikation am TCP-Port 1433 zulässt.

Verbindungen aus Azure

Wenn Sie in Azure gehosteten Anwendungen die Verbindungsherstellung mit Ihrer SQL Server-Instanz ermöglichen möchten, müssen Azure-Verbindungen aktiviert sein. Zum Aktivieren von Azure-Verbindungen ist eine Firewallregel erforderlich, deren Start- und End-IP-Adresse auf 0.0.0.0 festgelegt werden. Diese empfohlene Regel gilt nur für Azure SQL-Datenbank.

Wenn eine Anwendung in Azure versucht, eine Verbindung mit dem Server herzustellen, prüft die Firewall, ob Azure-Verbindungen zulässig sind, indem sie überprüft, ob diese Firewallregel existiert. Dies kann direkt im Azure-Portalbereich eingeschaltet werden, indem Sie in den Einstellungen für Firewalls und virtuelle Netzwerke die Option "Azure-Dienste und -Ressourcen Zugriff auf diesen Server erlauben" auf EIN schalten. Durch das Umschalten der Einstellung auf „EIN“ wird eine eingehende Firewallregel für IP 0.0.0.0 – 0.0.0.0 namens AllowAllWindowsAzureIps erstellt. Die Regel kann in der Masterdatenbank-Ansicht sys.firewall_rules angezeigt werden. Wenn Sie das Portal nicht verwenden, erstellen Sie mit PowerShell oder der Azure CLI eine Firewallregel, wobei Start- und End-IP-Adresse auf 0.0.0.0 festgelegt sind.

Von Bedeutung

Diese Option konfiguriert die Firewall so, dass alle von Azure ausgehenden Verbindungen zugelassen werden (einschließlich Verbindungen von den Abonnements anderer Kunden). Stellen Sie bei Verwendung dieser Option sicher, dass Ihre Anmelde- und Benutzerberechtigungen den Zugriff auf autorisierte Benutzer beschränken.

Erlaubnisse

Um IP-Firewallregeln für die Azure SQL Server-Instanz erstellen und verwalten zu können, müssen Sie über eine der folgenden Rollen verfügen:

Erstellen und Verwalten von IP-Firewallregeln

Die erste Firewalleinstellung auf Serverebene können Sie im Azure-Portal oder programmgesteuert mithilfe von Azure PowerShell, über die Azure CLI oder mithilfe einer REST-API von Azure erstellen. Weitere IP-Firewallregeln auf Serverebene können mithilfe dieser Methoden oder mithilfe von Transact-SQL erstellt und verwaltet werden.

Von Bedeutung

IP-Firewallregeln auf Datenbankebene können nur mithilfe von Transact-SQL erstellt und verwaltet werden.

Um die Leistung zu verbessern, werden IP-Firewallregeln auf Serverebene vorübergehend auf Datenbankebene zwischengespeichert. Informationen zum Aktualisieren des Caches finden Sie unter DBCC FLUSHAUTHCACHE.

Tipp

Mithilfe der Datenbanküberwachung können Sie Firewalländerungen auf Server- und Datenbankebene überwachen.

Verwalten von IP-Firewallregeln auf Serverebene über das Azure-Portal

Navigieren Sie zum Festlegen einer IP-Firewallregel auf Serverebene im Azure-Portal zur Seite „Übersicht“ für Ihre Datenbank oder Ihren Server.

Tipp

Ein Tutorial finden Sie unter Erstellen einer Datenbank im Azure-Portal.

Vorgehensweise auf der Datenbankübersichtsseite

  1. Wenn Sie eine IP-Firewallregel auf Serverebene auf der Datenbankübersichtsseite festlegen möchten, wählen Sie "Serverfirewall auf der Symbolleiste festlegen" aus, wie in der folgenden Abbildung dargestellt.

    Screenshot: Beispiel für die Symbolleiste für die SQL-Datenbank-Firewalleinstellungen

    Die Netzwerkseite für den Server wird geöffnet.

  2. Fügen Sie eine Regel im Abschnitt "Firewallregeln" hinzu, um die IP-Adresse des verwendeten Computers hinzuzufügen, und wählen Sie dann "Speichern" aus. Eine IP-Firewallregel auf Serverebene wird für Ihre aktuelle IP-Adresse erstellt.

    Screenshot eines Beispiels für die Sql Server-Netzwerkseite.

Vorgehensweise auf der Serverübersichtsseite

Die Übersichtsseite für Ihren Server wird geöffnet. Sie enthält den vollqualifizierten Servernamen (z. B. mynewserver20170403.database.windows.net) sowie Optionen für die weitere Konfiguration.

  1. Um eine Regel auf Serverebene auf dieser Seite festzulegen, wählen Sie "Netzwerk" im Menü "Einstellungen" auf der linken Seite aus.
  2. Fügen Sie eine Regel im Abschnitt "Firewallregeln" hinzu, um die IP-Adresse des verwendeten Computers hinzuzufügen, und wählen Sie dann "Speichern" aus. Eine IP-Firewallregel auf Serverebene wird für Ihre aktuelle IP-Adresse erstellt.

Verwalten von IP-Firewallregeln mithilfe von Transact-SQL

Tabelle erweitern

Katalogansicht oder gespeicherte Prozedur Grad Beschreibung
sys.firewall_rules Server Zeigt die aktuellen IP-Firewallregeln auf Serverebene an
sp_set_firewall_rule Server Erstellt oder aktualisiert IP-Firewallregeln auf Serverebene
sp_delete_firewall_rule Server Entfernt IP-Firewallregeln auf Serverebene
sys.database_firewall_rules Datenbank Zeigt die aktuellen IP-Firewallregeln auf Datenbankebene an
sp_set_database_firewall_rule Datenbank Erstellt oder aktualisiert IP-Firewallregeln auf Datenbankebene
sp_delete_database_firewall_rule Datenbanken Entfernt IP-Firewallregeln auf Datenbankebene

Im folgenden Beispiel werden die vorhandenen Regeln überprüft. Darüber hinaus wird ein IP-Adressbereich auf dem Server contoso aktiviert und eine IP-Firewallregel gelöscht:

SQL

SELECT * FROM sys.firewall_rules ORDER BY name;

Fügen Sie anschließend eine IP-Firewallregel auf Serverebene hinzu.

SQL

SELECT * FROM sys.firewall_rules ORDER BY name;

EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
@start_ip_address = '192.168.1.1', @end\_ip\_address = '192.168.1.10'

Führen Sie zum Löschen einer IP-Firewallregel auf Serverebene die gespeicherte Prozedur sp_delete_firewall_rule aus. Im folgenden Beispiel wird die Regel ContosoFirewallRule gelöscht:

SQL

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Verwalten von IP-Firewallregeln auf Serverebene mithilfe von PowerShell

Hinweis

In diesem Beispiel wird das Azure Az PowerShell-Modul verwendet, das das empfohlene PowerShell-Modul für die Interaktion mit Azure ist. Informationen zu den ersten Schritten mit dem Az PowerShell-Modul finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Von Bedeutung

Das PowerShell-Modul Azure Resource Manager (AzureRM) wurde am 29. Februar 2024 nicht mehr unterstützt. Alle zukünftigen Entwicklungen sollten das Az.Sql-Modul verwenden. Benutzern wird empfohlen, von AzureRM zum Az PowerShell-Modul zu migrieren, um fortgesetzte Unterstützung und Updates sicherzustellen. Das AzureRM-Modul wird nicht mehr verwaltet oder unterstützt. Die Argumente für die Befehle im Az PowerShell-Modul und in den AzureRM-Modulen sind wesentlich identisch. Weitere Informationen zur Kompatibilität finden Sie unter Einführung in das neue Az PowerShell-Modul.

Tabelle erweitern

Cmdlet Grad Beschreibung
Get-AzSqlServerFirewallRule Server Gibt die aktuellen Firewallregeln auf Serverebene zurück.
New-AzSqlServerFirewallRule Server Erstellt eine neue Firewallregel auf Serverebene.
Set-AzSqlServerFirewallRule Server Aktualisiert die Eigenschaften einer vorhandenen Firewallregel auf Serverebene.
Remove-AzSqlServerFirewallRule Server Entfernt Firewallregeln auf Serverebene.

Im folgenden Beispiel wird eine IP-Firewallregel auf Serverebene mithilfe von PowerShell festgelegt:

PowerShell

New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `-ServerName $servername `-FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"

Tipp

Geben Sie für $servername den Servernamen und nicht den vollqualifizierten DNS-Namen an, z. B. mysqldbserver anstelle von mysqldbserver.database.windows.net. PowerShell-Beispiele im Kontext eines Schnellstarts finden Sie unter Erstellen einer Datenbank – PowerShell und Erstellen einer Einzeldatenbank und Konfigurieren einer IP-Firewallregel auf Serverebene mithilfe von PowerShell.

Verwalten von IP-Firewallregeln auf Serverebene mithilfe der CLI

Tabelle erweitern

Cmdlet Grad Beschreibung
az sql server firewall-rule create - Befehl zum Erstellen einer Firewall-Regel für SQL-Server Server Erstellt eine IP-Serverfirewallregel
az SQL Server Firewall-Regelliste Server Listet die IP-Firewallregeln auf einem Server auf
az sql server firewall-rule show - Dieser Befehl zeigt die bestehenden Firewall-Regeln für einen SQL-Server an. Server Zeigt die Details einer IP-Firewallregel an
az SQL Server Firewall-Regel aktualisieren Server Aktualisiert eine IP-Firewallregel
az sql server firewall-regel löschen Server Löscht eine IP-Firewallregel

Im folgenden Beispiel wird eine IP-Firewallregel auf Serverebene mithilfe der CLI festgelegt:

Azure-Befehlszeilenschnittstelle (Azure CLI)



az sql server firewall-rule create --resource-group myResourceGroup --server $servername \-n ContosoIPRange --start-ip-address 192.168.1.0 --end-ip-address 192.168.1.255">">


Tipp

Geben Sie für $servername den Servernamen und nicht den vollqualifizierten DNS-Namen an. Verwenden Sie beispielsweise mysqldbserver anstelle von mysqldbserver.database.windows.net. Ein CLI-Beispiel im Kontext eines Schnellstarts finden Sie unter Erstellen einer Datenbank – Azure CLI und Erstellen einer Einzeldatenbank und Konfigurieren einer IP-Firewallregel auf Serverebene mithilfe der Azure CLI. Informationen zu Azure Synapse Analytics finden Sie in den folgenden Beispielen:

Tabelle erweitern

Cmdlet Grad Beschreibung
az synapse workspace firewall-rule create (Erstellen Sie eine Firewall-Regel für Synapse-Arbeitsbereiche.) Server Erstellen einer Firewallregel
az synapse workspace firewall-rule delete Server Löschen einer Firewallregel
az synapse workspace firewall-rule list – Diese Befehlszeile listet alle Firewall-Regeln in einem Synapse-Arbeitsbereich auf. Server Auflisten aller Firewallregeln
az synapse workspace firewall-rule show Server Abrufen einer Firewallregel
az synapse workspace firewall-rule update Server Aktualisieren einer Firewallregel
az synapse workspace firewall-rule wait Server Versetzen der CLI in den Wartezustand, bis eine Bedingung einer Firewallregel erfüllt ist

Im folgenden Beispiel wird eine IP-Firewallregel auf Serverebene mithilfe der CLI in Azure Synapse festgelegt:

Azure-Befehlszeilenschnittstelle (Azure CLI)

az synapse workspace firewall-rule create --name AllowAllWindowsAzureIps --workspace-name $workspacename --resource-group $resourcegroupname --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

Verwalten von IP-Firewallregeln auf Serverebene mithilfe einer REST-API

Tabelle erweitern

API Grad Beschreibung
Firewallregeln auflisten Server Zeigt die aktuellen IP-Firewallregeln auf Serverebene an
Erstellen oder Aktualisieren von Firewallregeln Server Erstellt oder aktualisiert IP-Firewallregeln auf Serverebene
Firewallregeln löschen Server Entfernt IP-Firewallregeln auf Serverebene
Firewall-Regeln abrufen Server Ruft IP-Firewallregeln auf Serverebene ab

Behandeln von Problemen mit der Datenbankfirewall

In diesem Abschnitt finden Sie einige Punkte für den Fall, dass sich der Zugriff auf Azure SQL-Datenbank nicht wie erwartet verhält.

  • Konfiguration der lokalen Firewall: Bevor Ihr Computer auf die Azure SQL-Datenbank zugreifen kann, müssen Sie möglicherweise eine Firewall-Ausnahme auf Ihrem Computer für TCP-Port 1433 erstellen. Um innerhalb der Grenzen der Azure-Cloud Verbindungen herzustellen, müssen Sie möglicherweise zusätzliche Ports öffnen. Weitere Informationen finden Sie im Abschnitt „Außerhalb im Vergleich zu innerhalb“ des Artikels Andere Ports als 1433 für ADO.NET 4.5 und Azure SQL-Datenbank.

  • Netzwerkadressenübersetzung: Aufgrund der Netzwerkadressenübersetzung (NETWORK Address Translation, NAT) unterscheidet sich die IP-Adresse, die von Ihrem Computer zum Herstellen einer Verbindung mit der Azure SQL-Datenbank verwendet wird, möglicherweise von der IP-Adresse in den IP-Konfigurationseinstellungen Ihres Computers. Gehen Sie wie folgt vor, um die IP-Adresse anzuzeigen, die Ihr Computer für die Verbindungsherstellung mit Azure verwendet:

    1. Melden Sie sich beim Portal an.
    2. Wechseln Sie zur Registerkarte "Konfigurieren" auf dem Server, auf dem Ihre Datenbank gehostet wird.
    3. Die aktuelle Client-IP-Adresse wird im Abschnitt "Zulässige IP-Adressen" angezeigt. Wählen Sie "Für zulässige IP-Adressen hinzufügen" aus, damit dieser Computer auf den Server zugreifen kann.
  • Änderungen an der Zulassungsliste wurden noch nicht wirksam: Es kann bis zu einer verzögerung von fünf Minuten dauern, bis Änderungen an der Azure SQL-Datenbankfirewallkonfiguration wirksam werden.

  • Die Anmeldung ist nicht autorisiert oder ein falsches Kennwort wurde verwendet: Wenn eine Anmeldung nicht über Berechtigungen auf dem Server verfügt oder das Kennwort falsch ist, wird die Verbindung mit dem Server verweigert. Durch Erstellen einer Firewalleinstellung wird Clients lediglich die Möglichkeit gegeben, eine Verbindung mit dem Server herzustellen. Der Client muss weiterhin die erforderlichen Sicherheitsanmeldeinformationen bereitstellen. Weitere Informationen zum Vorbereiten von Anmeldungen finden Sie unter Steuern und Gewähren von Datenbankzugriff.

  • Dynamische IP-Adresse: Wenn Sie über eine Internetverbindung verfügen, die dynamische IP-Adressierung verwendet und Probleme beim Durchlaufen der Firewall haben, probieren Sie eine der folgenden Lösungen aus:

    • Erkundigen Sie sich bei Ihrem Internetdienstanbieter nach dem IP-Adressbereich, der den Clientcomputern zugewiesen ist, die auf den Server zugreifen. Fügen Sie diesen IP-Adressbereich als IP-Firewallregel hinzu.
    • Verwenden Sie für Ihre Clientcomputer stattdessen eine statische IP-Adressierung. Fügen Sie die IP-Adressen als IP-Firewallregeln hinzu.