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.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';
另請參閱
Azure SQL Database 防火牆
如何:設定防火牆設定 (Azure SQL Database)
sys.firewall_rules (Azure SQL Database)