適用対象:SQL Server
この記事では、SQL Server 構成マネージャーを使用して SQL Server のデータベース エンジンのインスタンスを非表示にする方法について説明します。 SQL Server では、 SQL Server Browser サービスを使用して、コンピューターにインストールされている データベース エンジン のインスタンスを列挙します。
このオプションを使用すると、クライアント アプリケーションはサーバーを参照でき、クライアントは同じコンピューター上のデータベース エンジンの複数のインスタンスを区別できます。 次の手順に従い、 データベース エンジン [参照] ボタンを使用してこの インスタンスを表示しようとするクライアント コンピューターに対して、SQL Server Browser サービスがそのインスタンスを公開しないようにできます。
SQL Server 構成マネージャーを使用する
SQL Server 構成マネージャーで、[SQL Server ネットワークの構成] を展開し、 の<を右クリックします。次に > を選択します。
[ フラグ ] タブの [ HideInstance ] ボックスで [ はい] を選択し、[ OK] を 選択してダイアログ ボックスを閉じます。 この変更は、新しい接続ですぐに有効になります。
解説
名前付きインスタンスを非表示にする場合は、ブラウザー サービスが実行されている場合でも、非表示のインスタンスに接続するために接続文字列にポート番号を指定する必要があります。 名前付きの非表示のインスタンスに対しては、動的ポートではなく静的ポートを利用することをお勧めします。
詳細については、「 特定の TCP ポートでリッスンするように SQL Server を構成する」を参照してください。
クラスタリング
クラスター化されたインスタンスまたは可用性グループ名を非表示にすると、クラスター サービスが SQL Server に接続できない可能性があります。 これにより、クラスター インスタンス IsAlive チェックが失敗し、SQL Server がオフラインになります。
このシナリオを回避するには、クラスター化されたインスタンスのすべてのノード、または可用性グループレプリカをホストするすべてのインスタンスにエイリアスを作成し、インスタンス用に構成した静的ポートを反映します。 たとえば、2 つのレプリカを持つ可用性グループでは、node-two\instancename のように、ノード 1 にノード 2 インスタンスの別名を作成します。 ノード 2 で、node-one\instancename という別名を作成します。 フェールオーバーを成功させるには、エイリアスが必要です。
詳細については、「 クライアントで使用するサーバー エイリアスを作成または削除する」を参照してください。
クラスター化された名前付きインスタンスを非表示にした場合、 LastConnect レジストリ キー (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect) に SQL Server がリッスンしているポートとは異なるポートがある場合、クラスター サービスは SQL Server に接続できない可能性があります。
クラスター サービスが SQL Server に接続できない場合は、次のようなエラーが表示されることがあります。
Event ID: 1001: Event Name: Failover clustering resource deadlock.