SQL Server 接続文字列に関する質問

SQL Server 接続文字列に関する質問

サーバー上の名前付き SQL インスタンスに接続しようとしています。SQL Server 2005 の既定のインスタンスが既に存在し、新しく名前が付けられたインスタンス (SQL Server 2008) もあります。TCP 接続を使用するために「ネットワーク ライブラリ」プロパティを使用していますが、何らかの理由で既定のインスタンスに接続しようとし、ログイン エラーに関するエラーを省略します。

ネットワーク ライブラリ プロパティを削除すると、エラーなしで接続も確立されます。

私は Windows 認証を使用しており、必要な権限をすべて持っています。

問題のある接続文字列:

データ ソース = ServerName\InstanceName,1433;ネットワーク ライブラリ = dbmssocn;初期カタログ = MyDataBaseName;統合セキュリティ = SSPI

動作する接続文字列:

データ ソース = ServerName\InstanceName; 初期カタログ = MyDataBaseName; 統合セキュリティ = SSPI

その理由を知りたいです。よろしくお願いします。

タミール

答え1

接続文字列には 2 つの違いがあるので、これについてお答えします...

  • 名前付きインスタンスはポート 1433 をリッスンしません (デフォルトでは、デフォルト インスタンスのみ)
  • ポートが指定されている場合、インスタンス名は無視されます

それで:

  • ServerName\InstanceName,1433ポート1433のサーバー「ServerName」に接続することを意味します
  • ServerName\InstanceNameサーバー「ServerName」に接続し、インスタンス名を正しいポートに解決することを意味します(解決にはポート 1434 UDP が使用されます)。

ただし、network library=dbmssocnTCP を使用することを意味します。SQL Server インスタンス (ポートに関するものを参照) が TCP をリッスンしていない可能性があります。

関連情報