SQL Server のデータをゴニョゴニョして調査するツールを作ったが、あるサーバーには接続できない事象があった。
接続できるサーバー:Windows 2003 R2 / SQL Server 2005
接続不可なサーバー:Windows 2008 R2 / SQL Server 2008 R2
Excel から ADO 接続していたが、最近ADOなんてサポートしなくなったのか?とかで調べるがそのような情報はない。SQL Server Browser というサービスが起動している必要があるという記載をどこかで見つけ、試してもダメ。ファイヤーウォールか?
試しにSQL Server Management Studio にて接続を試みるも、これもダメ。ということはファイヤーウォール?と調べると、確かにファイヤーウォール上許可はなかった。よし、1433ポートを許可するよう追加、と言う作業をしていると、確か4年ほど前にもSQL Server2005 で似たようなことに遭遇したことをふと思い出した。デフォルトではSQL ServerはTCP/IPでの接続できるようになっていなかったはず。
状態を調べると、SQL Server でTCP/IP接続が許可されていない。接続できるよう設定変更。
これにより SQL Server Management Studio での利用がOKになった。ツールからのアクセスもOK。ほっと一安心である。
【まとめ】
・SQL Server 2005 以降は TCP/IP でデータベースへの接続を行おうとしてもデフォルトでは不可。
・調査にはSQL Server Management Studioも使うこと。
・ファイヤーウォールの設定と、SQL Server 自体のTCP/IPの利用可否を確認すること。
【おまけ】
ADOでSQL Server へ接続する際のプロバイダー名が追加されていた。
・従来:SQLOLEDB
・SQL Server 2005:SQLNCLI
・SQL Server 2008:SQLNCLI10
なお、SQL Server 2005/2008 でも SQLOLEDB を使用することは可能。追加されたのは 2005 以降に追加されたネイティブのモードに対応するそうである。どんなモードなんじゃ?というのは勉強不足。
詳細
http://msdn.microsoft.com/ja-jp/library/ms130978.aspx
接続できるサーバー:Windows 2003 R2 / SQL Server 2005
接続不可なサーバー:Windows 2008 R2 / SQL Server 2008 R2
Excel から ADO 接続していたが、最近ADOなんてサポートしなくなったのか?とかで調べるがそのような情報はない。SQL Server Browser というサービスが起動している必要があるという記載をどこかで見つけ、試してもダメ。ファイヤーウォールか?
試しにSQL Server Management Studio にて接続を試みるも、これもダメ。ということはファイヤーウォール?と調べると、確かにファイヤーウォール上許可はなかった。よし、1433ポートを許可するよう追加、と言う作業をしていると、確か4年ほど前にもSQL Server2005 で似たようなことに遭遇したことをふと思い出した。デフォルトではSQL ServerはTCP/IPでの接続できるようになっていなかったはず。
状態を調べると、SQL Server でTCP/IP接続が許可されていない。接続できるよう設定変更。
これにより SQL Server Management Studio での利用がOKになった。ツールからのアクセスもOK。ほっと一安心である。
【まとめ】
・SQL Server 2005 以降は TCP/IP でデータベースへの接続を行おうとしてもデフォルトでは不可。
・調査にはSQL Server Management Studioも使うこと。
・ファイヤーウォールの設定と、SQL Server 自体のTCP/IPの利用可否を確認すること。
【おまけ】
ADOでSQL Server へ接続する際のプロバイダー名が追加されていた。
・従来:SQLOLEDB
・SQL Server 2005:SQLNCLI
・SQL Server 2008:SQLNCLI10
なお、SQL Server 2005/2008 でも SQLOLEDB を使用することは可能。追加されたのは 2005 以降に追加されたネイティブのモードに対応するそうである。どんなモードなんじゃ?というのは勉強不足。
詳細
http://msdn.microsoft.com/ja-jp/library/ms130978.aspx