sp_set_firewall_rule (Azure SQL Database)

適用対象: Azure SQL Database Azure Synapse Analytics

SQL Database サーバーにサーバーレベルのファイアウォール設定を作成するか、更新します。 このストアド プロシージャは、サーバー レベルのプリンシパル ログインまたは割り当てられた Microsoft Entra ID (formerly Azure Active Directory) プリンシパルに対するmaster データベースでのみ使用できます。

構文

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

引数

[ @name = ] N'name'

サーバーレベルのファイアウォールの設定を説明し、区別するための名前です。 @namenvarchar(128)です。

[ @start_ip_address = ] 'start_ip_address'

サーバーレベルのファイアウォール設定の範囲の最下位の IP アドレスです。 @start_ip_addressvarchar(50)です。 これ以上の IP アドレスは、SQL Database サーバーへの接続を試行できます。 設定できる最下位の IP アドレスは 0.0.0.0 です。

[ @end_ip_address = ] 'end_ip_address'

サーバーレベルのファイアウォール設定の範囲の最上位の IP アドレスです。 @end_ip_addressvarchar(50)です。 これ以下の IP アドレスは、SQL Database サーバーへの接続を試行できます。 設定できる最上位の IP アドレスは 255.255.255.255 です。

このフィールドと @start_ip_address フィールドの両方が同じ 0.0.0.0場合、Azure 接続の試行が許可されます。

解説

サーバー レベルのファイアウォール設定の名前は一意である必要があります。 ストアド プロシージャに指定された設定の名前がファイアウォール設定テーブルに既に存在する場合は、開始 IP アドレスと終了 IP アドレスが更新されます。 それ以外の場合は、新しいサーバー レベルのファイアウォール設定が作成されます。

開始 IP アドレスおよび終了 IP アドレスが 0.0.0.0 であるサーバーレベル ファイアウォール設定を追加すると、Azure から SQL Database サーバーへのアクセスが有効になります。 nameパラメーターに値を指定します。これは、サーバー レベルのファイアウォール設定の内容を覚えておくのに役立ちます。

SQL Database では、接続の認証に必要なログイン データおよびサーバー レベルのファイアウォール規則は、各データベースで一時的にキャッシュされます。 このキャッシュは定期的に更新されます。 認証キャッシュを強制的に更新し、データベースにログイン テーブルの最新バージョンがあることを確認するには、DBCC FLUSHAUTHCACHE (Transact-SQL) を実行します。

これは拡張ストアド プロシージャであるため、各パラメーターに渡される値のデータ型はパラメーター定義と一致する必要があります。

アクセス許可

サーバー レベルのファイアウォール規則を作成または変更できるのは、プロビジョニング プロセスによって作成されたサーバー レベルのプリンシパル ログイン、または管理者として割り当てられた Microsoft Entra ID プリンシパルだけです。 sp_set_firewall_ruleを実行するには、ユーザーが master データベースに接続されている必要があります。

次のコードでは、Azure からのアクセスを有効にする、Allow 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.20.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';