sp_set_database_firewall_rule (Azure SQL Database)

適用於:Azure SQL 資料庫

建立或更新 Azure SQL 資料庫 的資料庫層級防火牆規則。 您可以為 master 資料庫,以及 SQL Database 上的使用者資料庫,設定資料庫防火牆規則。 使用自主資料庫使用者時,資料庫防火牆規則很有用。 如需詳細資訊,請參閱 使用自主資料庫讓您的資料庫可攜式。

語法

sp_set_database_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位址。 等於或大於此值的IP位址可能會嘗試連線到 SQL 資料庫 實例。 可能的最低 IP 位址為 0.0.0.0@start_ip_address為 varchar(50),沒有預設值。

[ @end_ip_address = ] 'end_ip_address'

資料庫層級防火牆設定範圍中最高的IP位址。 等於或小於此值的IP位址可能會嘗試連線到 SQL 資料庫 實例。 可能的最高 IP 位址為 255.255.255.255@end_ip_address為 varchar(50),沒有預設值。

下表示范 SQL 資料庫 中支援的自變數和選項。

注意

當此欄位和 @start_ip_address 欄位等於 0.0.0.0時,允許 Azure 連線嘗試。

備註

資料庫的資料庫層級防火牆設定名稱必須是唯一的。 如果針對預存程式提供的資料庫層級防火牆設定名稱已存在於資料庫層級防火牆設定數據表中,則會更新起始和結束 IP 位址。 否則,會建立新的資料庫層級防火牆設定。

當您新增資料庫層級防火牆設定,其中開頭和結尾 IP 位址等於 0.0.0.0時,您可以從任何 Azure 資源存取 SQL 資料庫 伺服器中的資料庫。 將值提供給 @name 參數,以協助您記住防火牆設定的用途。

權限

需要資料庫的 CONTROL 權限。

範例

下列程式代碼會建立稱為 Allow Azure 的資料庫層級防火牆設定,以便從 Azure 存取您的資料庫。

EXECUTE sp_set_database_firewall_rule N'Allow Azure', '0.0.0.0', '0.0.0.0';

下列程式代碼只會針對IP位址0.0.0.4建立稱為 Example DB Setting 1 的資料庫層級防火牆設定。 然後會再次呼叫 sp_set_database firewall_rule 預存程序,在該防火牆設定中更新結束 IP 位址為 0.0.0.6。 此範例會建立允許IP位址 0.0.0.40.0.0.50.0.0.6 存取資料庫的範圍。

  • 僅針對IP 0.0.0.4建立資料庫層級防火牆設定:

    EXECUTE sp_set_database_firewall_rule N'Example DB Setting 1', '0.0.0.4', '0.0.0.4';
    
  • 更新資料庫層級防火牆設定,以建立允許的IP位址範圍:

    EXECUTE sp_set_database_firewall_rule N'Example DB Setting 1', '0.0.0.4', '0.0.0.6';