sp_set_firewall_rule (Azure SQL Database)
適用於: Azure SQL 資料庫 Azure Synapse Analytics
建立或更新 SQL 資料庫 伺服器的伺服器層級防火牆設定。 此預存程式只能在資料庫中使用 master
至伺服器層級主體登入或指派Microsoft Entra ID(先前稱為 Azure Active Directory) 主體。
語法
sp_set_firewall_rule
[ @name = ] N'name'
, [ @start_ip_address = ] 'start_ip_address'
, [ @end_ip_address = ] 'end_ip_address'
[ ; ]
引數
[ @name = ] N'name'
用來描述和區分伺服器層級防火牆設定的名稱。 @name是 nvarchar(128)。
[ @start_ip_address = ] 'start_ip_address'
伺服器層級防火牆設定範圍中最低的 IP 位址。 @start_ip_address是 varchar(50)。 等於或大於這個位址的 IP 位址可以嘗試連接至 SQL Azure 伺服器。 可能的最低 IP 位址為 0.0.0.0
。
[ @end_ip_address = ] 'end_ip_address'
伺服器層級防火牆設定範圍中最高的 IP 位址。 @end_ip_address是 varchar(50)。 等於或小於這個位址的 IP 位址可以嘗試連接至 SQL Azure 伺服器。 可能的最高 IP 位址為 255.255.255.255
。
當此欄位和 @start_ip_address 字段相等 0.0.0.0
時,允許 Azure 連線嘗試。
備註
伺服器層級防火牆設定的名稱必須是唯一的。 如果為預存程式提供的設定名稱已存在於防火牆設定數據表中,則會更新起始和結束IP位址。 否則,會建立新的伺服器層級防火牆設定。
如果您加入的伺服器層級防火牆設定中的開始和結束 IP 位址等於 0.0.0.0
,表示可從 Azure 存取您的 SQL Azure 伺服器。 提供名稱參數的值,以協助您記住伺服器層級防火牆設定的用途。
在 SQL Database 中,驗證連線需要登入資料,且伺服器層級防火牆規則的快取會暫時在每個資料庫中進行。 此快取會定期重新整理。 若要重新整理驗證快取,並確定資料庫擁有登入資料表的最新版本,請執行 DBCC FLUSHAUTHCACHE。
這是擴充預存程序,因此針對每個參數傳入之值的資料類型必須符合參數定義。
權限
只有布建程式所建立的伺服器層級主體登入,或指派為系統管理員的 Microsoft Entra ID 主體,才能建立或修改伺服器層級防火牆規則。 使用者必須連接到 master
資料庫,才能執行 sp_set_firewall_rule
。
範例
下列程式碼會建立名為 Allow Azure
的伺服器層級防火牆設定,該設定可讓您從 Azure 進行存取。 在虛擬 master
資料庫中執行下列腳本。
-- Enable Azure connections.
EXEC sp_set_firewall_rule N'Allow Azure', '0.0.0.0', '0.0.0.0';
以下程式碼只會針對 IP 位址 Example setting 1
建立名為 0.0.0.2
的伺服器層級防火牆設定。 然後會再次呼叫 sp_set_firewall_rule
預存程序,在該防火牆設定中更新結束 IP 位址為 0.0.0.4
。 這會建立一個範圍,允許 IP 位址 0.0.0.2
、0.0.0.3
和 0.0.0.4
存取伺服器。
-- 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';