sp_set_firewall_rule (Azure SQL-Datenbank)
Gilt für: Azure SQL-Datenbank Azure Synapse Analytics
Erstellt oder aktualisiert die Firewalleinstellungen auf Serverebene für Ihre SQL-Datenbank-Server. Diese gespeicherte Prozedur ist nur in der master
Datenbank für die Prinzipalanmeldung auf Serverebene oder dem zugewiesenen Microsoft Entra ID -Prinzipal (früher Azure Active Directory) verfügbar.
Syntax
sp_set_firewall_rule
[ @name = ] N'name'
, [ @start_ip_address = ] 'start_ip_address'
, [ @end_ip_address = ] 'end_ip_address'
[ ; ]
Argumente
[ @name = ] N'name'
Der verwendete Name, um die Firewalleinstellung auf Serverebene zu beschreiben und von anderen zu unterscheiden. @name ist nvarchar(128).
[ @start_ip_address = ] 'start_ip_address'
Die niedrigste IP-Adresse im Bereich der Firewalleinstellung auf Serverebene. @start_ip_address ist varchar(50). IP-Adressen, die größer oder gleich dieser IP-Adresse sind, können versuchen, eine Verbindung mit dem SQL-Datenbank-Server herzustellen. Die niedrigste mögliche IP-Adresse ist 0.0.0.0
.
[ @end_ip_address = ] 'end_ip_address'
Die höchste IP-Adresse im Bereich der Firewalleinstellung auf Serverebene. @end_ip_address ist varchar(50). IP-Adressen, die kleiner oder gleich dieser IP-Adresse sind, können versuchen, eine Verbindung mit dem SQL-Datenbank-Server herzustellen. Die höchste mögliche IP-Adresse ist 255.255.255.255
.
Azure-Verbindungsversuche sind zulässig, wenn dieses Feld und das @start_ip_address Feld gleich sind 0.0.0.0
.
Hinweise
Die Namen der Firewalleinstellungen auf Serverebene müssen eindeutig sein. Wenn der Name der für die gespeicherte Prozedur bereitgestellten Einstellung bereits in der Firewalleinstellungstabelle vorhanden ist, werden die Start- und End-IP-Adressen aktualisiert. Andernfalls wird eine neue Firewalleinstellung auf Serverebene erstellt.
Durch Hinzufügen einer Firewalleinstellung auf Serverebene, bei der die Anfangs- und die End-IP-Adresse auf 0.0.0.0
festgelegt sind, wird der Zugriff auf den SQL-Datenbank-Server durch Azure ermöglicht. Geben Sie einen Wert für den Namensparameter an, der Ihnen hilft, sich zu merken, wofür die Firewalleinstellung auf Serverebene festgelegt ist.
In SQL-Datenbank werden Anmeldedaten, die für die Authentifizierung einer Verbindung und Firewallregeln auf Serverebene erforderlich sind, über einen gewissen Zeitraum in jeder Datenbank gespeichert. Dieser Cache wird regelmäßig aktualisiert. Führen Sie DBCC FLUSHAUTHCACHE (Transact-SQL) aus, um das Aktualisieren der Authentifizierungsdatenbank zu erzwingen und sicherzustellen, dass die Datenbank über die aktuelle Version der Anmeldeinformationstabelle verfügt.
Dies ist eine erweiterte gespeicherte Prozedur, sodass der Datentyp des für jeden Parameter übergebenen Werts mit der Parameterdefinition übereinstimmen muss.
Berechtigungen
Nur die vom Bereitstellungsprozess erstellte Prinzipalanmeldung auf Serverebene oder ein Als Administrator zugewiesener Microsoft Entra-ID-Prinzipal kann Firewallregeln auf Serverebene erstellen oder ändern. Der Benutzer muss mit der master
Datenbank verbunden sein, um sie auszuführen sp_set_firewall_rule
.
Beispiele
Im folgenden Code wird eine Firewalleinstellung auf Serverebene mit der Bezeichnung Allow Azure
erstellt, durch die der Zugriff über Azure ermöglicht wird: Führen Sie das folgende Skript in der virtuellen master
Datenbank aus.
-- Enable Azure connections.
EXEC sp_set_firewall_rule N'Allow Azure', '0.0.0.0', '0.0.0.0';
Der folgende Code erstellt eine Firewalleinstellung auf Serverebene namens Example setting 1
nur für die IP-Adresse 0.0.0.2
. Anschließend wird die gespeicherte Prozedur „sp_set_firewall_rule
“ erneut aufgerufen, um die End-IP-Adresse in dieser Firewalleinstellung auf 0.0.0.4
zu aktualisieren. Dadurch wird ein Bereich erstellt, über den die IP-Adressen 0.0.0.2
, 0.0.0.3
und 0.0.0.4
auf den Server zugreifen können.
-- Create server-level firewall setting for only IP 0.0.0.2
EXEC sp_set_firewall_rule N'Example setting 1', '0.0.0.2', '0.0.0.2';
-- Update server-level firewall setting to create a range of allowed IP addresses
EXEC sp_set_firewall_rule N'Example setting 1', '0.0.0.2', '0.0.0.4';