2011年6月11日土曜日

Windows Server 2008 R2 + SQL Server 2008 R2 への接続について

Windows Server 2008 R2 + SQL Server 2008 R2 の構成で、Localからはデータベースが開けるのにRemoteからはデータベースが開けなかったとき、以下の手順で開く事ができるようになりました。

サーバはActive Directoryのメンバーサーバーで、Windowsファイアウォールはドメイン構成になっています。



1.SQL Server 構成マネージャーでTCP/IPを有効にする



TCP/IPが無効になっていたので、有効にしました。

2.WindowsファイアウォールでSQLServer.exeとSQLBrowser.exeの受信を許可する

[SQLServer]
%ProgramFiles%\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqlservr.exe

[SQLBrowser]
%ProgramFiles% (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe





SQLBrowserを許可すると、サーバーの一覧にサーバー名が現れて、サーバーにアクセスできます。
SQLServerを許可すると、データベースの一覧が現れて、データベースを開けました。

exeファイルの所在がよく分からない場合は、サービスから探ると良いと思います。

1.で有効にしたTCP/IPを静的構成にした場合は、プログラムではなく、ポート番号でも良いらしいです。
標準ではSQLServerはTCPの1433、SQLBrowserはUDPの1434です。

今回はプログラム指定でもポート指定でもどちらもOKでした。

トラブル当初、Windowsファイアウォールを無効にしてみたのですが、それでもサーバーの一覧しか現れなかったので、ファイアウォールとは別の原因を探ってしまいましたが、そもそもSQL ServerでTCP/IPが無効になっていたのが原因だったようです。

0 件のコメント:

コメントを投稿