MSDE2000のインストールとODBC接続設定方法

マイクロソフトが無償で配布しているリレーショナルデータベース・エンジン「MSDE2000」を、リモートのマシンからも接続できるようにインストールする方法を簡単にまとめておく。XAMPP同梱のMySQLでは日本語が文字化けして、気軽にデータを蓄積するためのデータベースとしては使えないとお嘆きのSEの皆さんのための記事である。

(1)マイクロソフトのWebサイトを「MSDE」というキーワードで検索し、MSDE2000のダウンロードページを見つけ、ダウンロードする。2006/01/23現在MSDE2000は「Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) Release A」という名称になっており、日本語版のダウンロードファイル名は「JPN_MSDE2000A.exe」である。
(2)ダウンロードしたファイルを実行すると、指定したフォルダの中にインストールに必要なファイルが解凍される。
(3)指定したフォルダ直下にある「setup.exe」を実行する前に、「setup.ini」を以下のように書き換える。
[Options]
SAPWD=”(好きなパスワード)”
DISABLENETWORKPROTOCOLS=0
SECURITYMODE=SQL
まず「SAPWD」は特権ユーザ「SA」のパスワードを指定するための行だ。MSDE2000に重要なデータを格納するつもりならば、推測されにくいパスワードを付けておこう。この行を書き忘れると「setup.exe」を実行したとたんにエラーで停止し、それ以上先に進まないので要注意だ。
次に「DISABLENETWORKPROTOCOLS=0」というのは、ネットワーク経由で他のコンピュータからも接続できるようにするための行だ。この行を書き忘れたり、「0」を「1」にしたりすると、他のコンピュータからは接続できなくなってしまうので要注意である。
最後の「SECURITYMODE=SQL」というのは、ネットワーク経由で他のコンピュータからMSDE2000に接続するとき、Windows認証ではなく、MSDE2000独自のユーザ名とパスワードで接続できるようにするための行だ。この行を書き忘れると、MSDE2000をインストールしたWindowsマシン上に登録されているローカルのWindowsユーザ名とパスワードでMSDE2000に接続することしかできなくなってしまう。
以上のように「setup.ini」を書き換えてから「setup.exe」を実行する。すぐ終わると思いきや、数分間待たされた後、何のメッセージもなくインストールが完了するので、いつ終わったのかよくわからない。とにかくダイアログ画面が消えたらインストール完了だ。Windows 2003 Serverにインストールする場合、サーバを再起動する必要がない点は便利だ。
MSDE2000はWindowsのサービス(常駐プログラム)としてインストールされるが、この状態ではまだサービスは開始されていない。マイコンピュータのアイコンを右クリックして「管理」をクリックするか、コントロールパネルなどから「サービス」一覧画面を表示させる。すると「MSSQLSERVER」という名前のサービスが存在するので、これを「開始」させるとよい。
仮に「setup.ini」を書き換えないまま「setup.exe」を実行してしまった場合や、「setup.ini」の記述を間違えたまま「setup.exe」を実行してしまった場合は、ふつうにコントロールパネルの「プログラムの追加と削除」から「Microsoft SQL Server Desktop Engine」を選択して削除してから、再インストールすればよい。
次にネットワーク経由で他のパソコンからODBC接続の設定をする方法を説明したい。
最近のWindowsXPパソコンなら、最初からSQL Server用のODBCドライバはインストールされている。もし見つからない場合はマイクロソフトの「Microsoft Universal Data Access」というページから「Universal Data Access関連ダウンロード」というページに移動すれば、MDAC(Microsoft Data Access Components)を無償でダウンロードできる。ここから最新のMDACをダウンロードしてインストールしよう。
SQL Server用のドライバがインストールされているものとして、ODBC接続設定の方法を説明する。
(1)コントロールパネルの「管理ツール」から「データソース(ODBC)」を開く。
(2)「システムDSN」のタブをクリックして「追加(D)」ボタンをクリック。
(3)「SQL Server」という名称のドライバを選択して「完了」をクリック。
(4)データソースの名前は「MSSQL」など適当な名前をつける。接続するSQL Serverサーバ名には、MSDE2000をインストールしたサーバのIPアドレスを入力する(名前解決可能な環境であればサーバ名を入力してもよい)。
(5)ログインIDの権限の確認を行う方法としては「SQL Server用のログインID」の方を選択し、「SQL Serverに接続して追加の構成オプションの規定設定を...」にチェックを入れて、ユーザ名は「SA」、パスワードは上記の「setup.ini」で記述した「SA」用のパスワードを入力する。
(6)後は「次へ」ボタンをクリックし続けて設定を完了させる。
これで他のコンピュータ上のVBScriptやVBA、MS-AccessなどからODBC接続でMSDE2000に接続することができる。OracleのSQL*Plusのような対話型のツールがあると便利なのだが、その手のツールをいちいちインストールせずとも、VBScriptでテーブル作成も簡単にできてしまう。
Set oConn = CreateObject(“ADODB.Connection”)
Call oConn.Open(“DSN=MSSQL;UID=SA;PWD=XXXXXX”)
sSql = “CREATE TABLE test_table (”
sSql = sSql & ” username VARCHAR(50)”
sSql = sSql & “,login_datetime VARCHAR(200) ”
sSql = sSql & ” PRIMARY KEY (username, login_datetime))”
Call oConn.Execute(sSql)
Call oConn.Close()
Set oConn = Nothing
同じく無償のスクリプトであるPHPとMySQLの組合せで同じことをやろうとすると、環境を構築するだけでも一日がかりになってしまうが、この程度のデータベース操作でよければ、Windows環境のみという条件つきで、VBScriptとMSDE2000の組合せの方がはるかにお手軽だ。