sp_set_firewall_rule (Azure SQL Database)

適用範圍: 是Azure SQL Database 是Azure Synapse Analytics

建立或更新 SQL Database 伺服器的伺服器層級防火牆設定。 這個預存程式只能在 master 資料庫中提供給伺服器層級主體登入或指派 Azure Active Directory 主體。

語法

sp_set_firewall_rule [@name =] 'name', 
    [@start_ip_address =] 'start_ip_address', 
    [@end_ip_address =] 'end_ip_address'
[ ; ]  

引數

下表示范中支援的引數和選項 Microsoft Azure SQL Database 。

Name Datatype Description
[ @name =] ' name ' NVARCHAR (128) 用來描述和區分伺服器層級防火牆設定的名稱。 傳入的值必須符合此參數的資料類型 (NVARCHAR) 。
[ @start_ip_address =] ' start_ip_address ' VARCHAR (50) 伺服器層級防火牆設定範圍中最低的 IP 位址。 等於或大於這個位址的 IP 位址可以嘗試連接至 SQL Database 伺服器。 可能的最低 IP 位址為 0.0.0.0
[ @end_ip_address =] ' end_ip_address ' VARCHAR (50) 伺服器層級防火牆設定範圍中最高的 IP 位址。 等於或小於這個位址的 IP 位址可以嘗試連接至 SQL Database 伺服器。 可能的最高 IP 位址為 255.255.255.255

注意:當這個欄位和 [ start_ip_address ] 欄位等於時,便允許 Azure 連接嘗試 0.0.0.0

備註

伺服器層級防火牆設定的名稱必須是唯一的。 如果為預存程序提供的設定名稱已存在防火牆設定資料表中,則會更新開始和結束 IP 位址。 否則,將會建立新的伺服器層級防火牆設定。

如果您加入的伺服器層級防火牆設定中的開始和結束 IP 位址等於 0.0.0.0,表示可從 Azure 存取您的 SQL Database 伺服器。 提供值給 名稱 參數,協助您記住伺服器層級防火牆設定的用途。

在 SQL Database 中,驗證連線需要登入資料,且伺服器層級防火牆規則會暫時快取在每個資料庫中。 此快取會定期重新整理。 若要重新整理驗證快取,並確定資料庫擁有登入資料表的最新版本,請執行 DBCC FLUSHAUTHCACHE (Transact-SQL)

這是擴充預存程式,因此為每個參數傳入的值資料類型必須符合參數定義。

權限

只有布建程式所建立的伺服器層級主體登入或指派為系統管理員 Azure Active Directory 主體,才能建立或修改伺服器層級防火牆規則。 使用者必須連接至 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 再次呼叫預存 0.0.0.4 程式,在該防火牆設定中將結束 IP 位址更新為。 這會建立一個範圍,允許 IP 位址 0.0.0.20.0.0.30.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';  
  

另請參閱

Azure SQL Database 防火牆
如何:設定防火牆設定 (Azure SQL Database)
sys.firewall_rules (Azure SQL Database)