0

名前付きインスタンスとしてインストールされたSQL2008R2(10.50.1600)で奇妙な問題が発生しています。外部クライアントが接続するために、従わなければならない特定の手順がありますが、従う必要はありません。実際、SQLサーバーでプロトコルTCP/IPとプロトコルを開いて再起動しましたが、これは問題ではありません。Named PipesActive Directoryドメイン(Server 2003から実行)を使用しています。サーバーまたはクライアントのOS(XP、2003、2008、Vista、7、64ビット、32ビットなど)に関係なく、問題が発生します。この問題は、SQL Management Studio、ADO(アプリケーションから)など、接続できるものからも発生します。

問題は、クライアントがこのサーバーに接続する前に、各クライアントマシンが最初にODBCを介してこのサーバーに接続する必要があることです(ODBCは使用しません)。これを行う前に10.5SQLサーバーに接続しようとすると、「サーバーが存在しないか、アクセスが拒否されました」という結果になります。しかし、ODBCに(を介してNamed Pipes)接続できるようになると、他のすべてが機能し始めます。コンピュータ名とIPアドレスの両方を使用する場合にも同じ問題が発生します。実際、コンピューター名\インスタンス名で接続する場合は、最初にODBCで接続する必要があります。次に、IPアドレス\インスタンス名で接続する場合は、次の場合にも同じことを行う必要があります。それ。

これは、すべてのクライアントコンピューターで実行する必要があります。この場合も、ODBCが名前付きパイプを介してこのSQLサーバーに接続できるようになると、そのクライアントからの今後のすべての試行が機能します。

これが発生する原因は何ですか?それを回避する方法は?これを「ODBCトリック」と呼んでいるので、実行する必要はありません。他のバージョンのSQLでこの問題が発生したことはありません。

4

2 に答える 2

2

この問題は、SQLブラウザサービスに関連している可能性があります。各SQLインスタンスには異なるポート番号があります-IPアドレス、ポートとしてクライアントから接続してみてください(例:123.123.123.1,1433)-これにより、DNSとブラウザが方程式から除外されます

編集:ブラウザに関連していることがわかったので、クライアントがSQLブラウザ(通常はポート1434)にアクセスできない理由を確認してみてください。サービスが開始されていませんか?おそらくファイアウォールブロッキング?

Microsoftは現在、デフォルトですべてのセキュリティを賢明に結び付けているため、新しい構成では通常、かなり詳細なセキュリティ計画、ポリシー構成、アクセス許可などが必要になります。信頼できない時代へようこそ;)

于 2012-03-19T20:31:52.317 に答える
0

簡単なファイルを作成することで、接続を簡単にテストできます。「SQLServer接続をテストする方法」の手順に従ってください:http://teusje.wordpress.com/2012/02/21/how-to-test-an-sql-server-connection/

于 2013-01-15T09:38:28.587 に答える