名前付きパイプを使用した有効な接続文字列の作成
ユーザーが変更しない限り、Microsoft SQL Serverの既定のインスタンスが名前付きパイプ プロトコルでリッスンすると、パイプ名として が使用\\.\pipe\sql\query
されます。 ここで、ピリオドはコンピューターがローカル コンピューターであることを示し、pipe
は接続が名前付きパイプであることを示します。sql\query
はパイプの名前を示します。 既定のパイプに接続するには、別名でもパイプ名に \\<computer_name>\pipe\sql\query
を指定する必要があります。 SQL Serverが別のパイプでリッスンするように構成されている場合、パイプ名はそのパイプを使用する必要があります。 たとえば、SQL Serverがパイプとして を使用\\.\pipe\unit\app
している場合、エイリアスはパイプ名として を使用\\<computer_name>\pipe\unit\app
する必要があります。
有効なパイプ名を作成するには、次の操作を行う必要があります。
[別名] を指定します。
プロトコルとして [名前付きパイプ] を選択 します。
パイプ名を入力します。 または、[パイプ名] を空白のままにして、[プロトコル] と [サーバー] を指定した後SQL Server 構成マネージャー適切なパイプ名を入力することもできます。
サーバーを指定 します。 名前付きのインスタンスの場合は、サーバー名とインスタンス名を指定できます。
接続時に、SQL Server Native Client コンポーネントは、指定したエイリアス名のサーバー、プロトコル、およびパイプ名の値をレジストリから読み取り、または の形式np:\\<computer_name>\pipe\<pipename>
np:\\<IPAddress>\pipe\<pipename>
でパイプ名を作成します。名前付きインスタンスの場合、既定のパイプ名は です\\<computer_name>\pipe\MSSQL$<instance_name>\sql\query
。
Note
Microsoft Windows ファイアウォールは、既定でポート 445 を閉じます。 MicrosoftSQL Server はポート 445 を介して通信するため、名前付きパイプを使用して受信クライアント接続をリッスンするようにSQL Serverが構成されている場合は、ポートをもう一度開く必要があります。 ファイアウォールの構成方法については、 SQL Server オンライン ブックの「SQL Server アクセスのためのファイアウォール構成方法」か、またはファイアウォールについてのドキュメンテーションを参照してください。
ローカル サーバーへの接続
クライアントと同じコンピューターで実行されているSQL Serverに接続する場合は、サーバー名として を使用(local)
できます。 (local)
の使用はあいまいさを残すのでお勧めできませんが、対象のコンピューター上でクライアントを実行していることがわかっている場合には便利な機能です。 たとえば、営業スタッフは、ノート PC 上で SQL Server を実行し、プロジェクト データもそのノート PC に保存しておきます。このように、ネットワークに接続しないモバイル ユーザー用のアプリケーションの場合、 (local) に接続するクライアントは、常にそのノート PC で実行している SQL Server に接続することになります。 localhost
の代わりに、(local)
またはピリオド (.) を使用することもできます。
接続プロトコルの確認
以下のクエリは、現在の接続に使用しているプロトコルを返します。
SELECT net_transport
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
例
既定のパイプに対するサーバー名による接続:
Alias Name <serveralias>
Pipe Name <blank>
Protocol Named Pipes
Server <servername>
既定のパイプに対する IP アドレスによる接続:
Alias Name <serveralias>
Pipe Name <leave blank>
Protocol Named Pipes
Server <IPAddress>
既定以外のパイプに対するサーバー名による接続:
Alias Name <serveralias>
Pipe Name \\<servername>\pipe\unit\app
Protocol Named Pipes
Server <servername>
名前付きのインスタンスに対するサーバー名による接続:
Alias Name <serveralias>
Pipe Name \\<servername>\pipe\MSSQL$<instancename>\SQL\query
Protocol Named Pipes
Server <servername>
ローカル コンピューターに対する localhost
による接続:
Alias Name <serveralias>
Pipe Name <blank>
Protocol Named Pipes
Server localhost
ローカル コンピューターに対するピリオドによる接続:
Alias Name <serveralias>
Pipe Name <left blank>
Protocol Named Pipes
Server .
Note
ネットワーク プロトコルを sqlcmd パラメーターとして指定するには、オンライン ブックの「方法: sqlcmd.exeを使用してデータベース エンジンに接続する」SQL Server参照してください。
参照
共有メモリ プロトコルを使用した有効な接続文字列の作成
TCP/IP を使用した有効な接続文字列の作成
ネットワーク プロトコルの選択