2009年03月25日

SQL Server Browserの使い道

SQLServer2005Expressをインストールすると本体(SQLServer)と一緒にSQLServerBrowserがサービスに組み込まれるが、これまで全く使っていなかった。
既定でも無効になっているのでどういう使い道があるのか知らなかった。

たまたま仕事でAccessデータベースをSQLServerに移行させる必要があり、サーバ機を用意するほどの予算もないので既存のXPマシンにExpress版をインストールして使うことになったとき、ODBC経由でネットワーク接続しようとしてODBCデータソースが作成できなかったことから調べていって判ったことである。

通常SQLServerのTCPポートは1433番固定なのだが、Express版は動的ポートが採用されている(今回初めて知った)。
そこでリモートから接続しようとするときどのポートに接続したらいいのか調べる必要があるが、それを行ってくれるのがSQL Server Browserというのである。

またXP(sp2適用)ではファイヤーウォールが有効になっているため、外部からSQLServerサービスとSQLServerBrowserサービスに接続するには、必要なポートを開ける必要がある。
実のところこれまではデータベースサーバとしてWindowsServer2003を使っていた。2003ではファイヤーウォールは既定では無効になっていたので意識する必要がなかったのだ。

固定ポートを使用していればファイヤーウォールの設定はそのポート番号を許可させるだけでよいが動的ポートの場合にはそれができない。
そこでサービスプログラム本体(sqlserver.exe)を許可させたあと、SQLServerBrowserサービスを使ってインスタンス名からポート番号を探る必要がるので、こちらも許可させる必要がある。なお、こちらはUDPの1434番(固定)を指定するか、sqlbrowser.exeを指定する。

詳しいことは下のサイトに紹介されている。
http://www.atmarkit.co.jp/fdotnet/dotnettips/545sqlsvrnet/sqlsvrnet.html

なお、余談だが今回Access2000のデータベースをSQLServer2005Express版に移行するのにAccess2000のアップサイジングウィザードを使ったところ「オーバーフロー」のエラーが発生した。この原因を調べたところAccess2000のバグのようでOffice2000ServicePack3を当てることで正常に変換できた。


posted by なっちゃん at 17:22| 静岡 ☁| Comment(0) | TrackBack(0) | ETC | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。