SQL Server 2000やMSDE(SQL Server 2000 Desktop Engine)を狙うウイルスやワームが蔓延するにつれ、システム管理者にとっては、それらの対策も重要な仕事となっている。具体的な作業としては、システムにSQL Server 2000やMSDEがインストールされているかどうかを調べ、必要ならば最新のSQL Server 2000用のService Packをインストールし、その上でさらに修正プログラムなどもインストールする必要がある。特にMSDEは、バックアップ・ソフトウェアや業務系アプリケーションなどをインストールすると、知らないうちにシステムにインストールされていることがあるので、管理者が気付いていないことも多い。
だがSQL Server 2000やMSDEの操作や管理に慣れていないシステム管理者にとっては(データベース関係の開発者でもない限り)、システムにデータベース・システムがインストールされているかどうかや、そのバージョン番号をどうやって調べればよいのか分からないことも多い。本TIPSでは、その方法についてまとめる。
SQL Server 2000のエディションとService Pack
SQL Server 2000の製品には、さまざまなバリエーションがあり、ニーズや目的に応じて使い分けられている。主なものとしては次のものがある。エディションは異なっても、データベース・エンジンはすべて共通であり、データベース・ファイルには互換性がある。
SQL Server 2000/MSDEに対するService Packは、2005年9月現在ではSP1、SP2、SP3(SP3a)、SP4が出荷されている(これ以外に、英語版か日本語版、MSDEかそうでないかという違いがある)。SQL Serverに対するセキュリティ修正プログラムは、少なくともSP3もしくはSP4が適用されていることが前提となっている場合が多いので、システムの脆弱性を調査する場合は、SQLのSP適用レベルに注意する必要がある。
だがWindows OSに対するSPなどと違い、SQL Server 2000/MSDEでは、バージョン表記中にSP1とかSP2などという文字列は表示されない。その代わりSQL Serverでは、SPや修正プログラムを適用すると、バージョン番号文字列のうち、サブ番号部分が更新されるので、これを基準にしてどのService Packが適用されているかを判断する。判別は、基本的には稼働中のSQL Serverシステムに接続し、バージョン番号を返すコマンドを実行して調査する。だがサービスが稼働していない場合にはこの方法は使えないので、データベースのコアとなる「sqlservr.exe」ファイルのバージョン・プロパティを調査する。SPレベルとバージョン番号の関係は次のとおりである。
SQL Server 2000の製品/SPレベル
製品バージョン
sqlservr.exeのファイル・バージョン
RTM版(初期出荷版)
8.00.194
2000.80.194.0
SQL Server 2000/MSDE SP1
8.00.384
2000.80.384.0
SQL Server 2000/MSDE SP2
8.00.534
2000.80.534.0
SQL Server 2000/MSDE SP3
8.00.760
2000.80.760.0
SQL Server 2000/MSDE SP3a
8.00.760
2000.80.760.0
SQL Server 2000/MSDE SP4
8.00.2039
2000.80.2039.0
SQL Server 2000/MSDEのSPレベルとバージョン番号
SQL Server 2000/MSDEの製品バージョンとsqlservr.exeのファイル・バージョン。この2つは少し異なるので、194とか384、2039といった番号(ビルド番号)に注目してバージョンを判別する。SQL Server向けのセキュリティ・パッチを適用すると、これらとは異なる番号になっている場合がある。SQL Server 2000 Workgroup Editionは後で追加された製品であり、その初期出荷バージョンは8.00.818(SP3a適用済み相当)となっている。
実行中のSQL Serverの製品バージョン番号を判定するには、「select @@version」コマンドを発行してその結果を調査するのが簡単である。SQL文を実行するためには、SQL Server 2000に付属の「SQL クエリ アナライザ」ツールか、SQL Server 2000もしくはMSDEに付属のosqlツールを利用する。
C:\>osql -E …osqlをtrustedモードで起動
1> select @@version …製品バージョン番号の表示
2> go …実行 …(中略)…
-----
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) …バージョン番号(8.00.760はSP3/SP3a)
Dec 17 2002 14:22:05
Copy
right (c) 1988-2003 Microsoft Corporation
Desktop Engine on Windows NT …エディション(MSDE)
5.2 (Build 3790: Service Pack 1) …これはOSのバージョン …(中略)…
(1 件処理されました)
1> exit …exitかquit、Ctrl-Cで終了できる
SQL Server 2000/MSDEでは、同時に複数の「インスタンス」をインストールすることができる。インスタンスとは、インストールされたSQL Server 2000/MSDEシステムの実体のことであり、1台のコンピュータに最大16インスタンスまでインストールできる。インスタンスごとに異なるフォルダにインストールするため、異なるエディションやSPバージョン、言語バージョンを混在させることができる。これにより、複数の(業務)アプリケーションが独自のSQL Server/MSDEをインストールしながらも、お互いに干渉することなく動作できるようになる。