Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

SQL Server 2000/MSDEのバージョンをチェックする

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2005/09/03
 
対象ソフトウェア
SQL Server 2000
SQL Server 2000 Desktop Engine(MSDE)
SQL Server 2000やMSDEにService Packやパッチを適用するには、インストールされているSQL Serverのバージョンを調査し、対応する修正プログラムを適用する必要がある。
SQL Serverのバージョンを調べるにはosqlなどで接続して「select @@version」文を実行するか、sqlservr.exeファイルのバージョンを調べる。
システムに複数のインスタンスがインストールされている場合は、インスタンス名を指定して接続、調査し、すべてのインスタンスに対して適切な修正プログラムを適用する。
 
解説

 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のエディション 用途
Enterprise Edition 大規模エンタープライズ用途向け
Standard Edition 中小規模向け
Workgroup Edition 小規模向け
Personal Edition デスクトップ用途向け
Developer Edition 開発者向け
Desktop Engine Edition(MSDE) 製品組み込み用
Evaluation Edition 評価版
SQL Server 2000の主なエディション
エディションにより、扱えるデータベースのサイズやスケーラビリティなどに差がある。詳細はSQL Serverの製品Webページを参照のこと。

SQL Server 2000/MSDEのバージョンとService Packレベル

 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適用済み相当)となっている。

 基本的には、この番号を元に現在どのSPが適用されているかを判断すればよい。ただし修正プログラムを適用するとその中間のバージョン番号になることがあるので、必ずしもこのとおりでないことに注意する。


操作方法

select文の実行による製品バージョン番号の調査

 実行中のSQL Serverの製品バージョン番号を判定するには、「select @@version」コマンドを発行してその結果を調査するのが簡単である。SQL文を実行するためには、SQL Server 2000に付属の「SQL クエリ アナライザ」ツールか、SQL Server 2000もしくはMSDEに付属のosqlツールを利用する。

 以下はosqlツールの利用例である。「-E」オプションはWindows認証を使ってSQL Serverにログオンするための指定である。

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で終了できる

C:\>

 さらに詳しく製品情報を調べるには、次のSelect文を実行する。これを利用すると、製品バージョン番号のほか、製品レベル(RTMかSP1、SP2など)、エディション(Standard EditionやDeveloper Editionなど)を知ることができる。

select serverproperty('productversion'), serverproperty ('productlevel'), serverproperty ('edition')

ファイル・バージョンによる判定

 osqlやクエリ・アナライザによるバージョンの判定は、稼働中のSQL Serverに正しく接続できる場合には利用できるが、そうでない場合(例:サービスが起動していない、SQL Serverへのログオン・アカウントが不明、ネットワーク機能を無効にしてMSDEをインストールしている場合など)は、sqlservr.exeファイルのバージョンから判断するとよい。このファイルは、デフォルトではC:\Program Files\Microsoft SQL Server\MSSQL\Binnにインストールされているはずであるが、複数のインスタンス(後述)がある場合や、アプリケーションが独自に(MSDEを)インストールしている場合では、異なる場所に存在している可能性がある。システムを検索して、該当するファイルをすべて見つけ、そのプロパティを確認するとよいだろう。

 ファイルのバージョンを調査する具体的な方法についてはWindows TIPS「バイナリ・ファイルのバージョンを調べる」を参照していただきたい。ファイルの[プロパティ]を表示させ、ファイル・バージョン(FileVersion属性)か製品バージョン(ProductVersion属性)を調査すればよい。

SQL Server 2000/MSDEのインスタンス

 SQL Server 2000/MSDEでは、同時に複数の「インスタンス」をインストールすることができる。インスタンスとは、インストールされたSQL Server 2000/MSDEシステムの実体のことであり、1台のコンピュータに最大16インスタンスまでインストールできる。インスタンスごとに異なるフォルダにインストールするため、異なるエディションやSPバージョン、言語バージョンを混在させることができる。これにより、複数の(業務)アプリケーションが独自のSQL Server/MSDEをインストールしながらも、お互いに干渉することなく動作できるようになる。

 だが管理者から見ると、複数インスタンスがインストールされている場合には注意が必要である。Service Packやセキュリティ・パッチを適用する場合は、そのすべてのインスタンスに対して適用しておかなければ、脆弱性が残ったままになるからだ。

 システムに複数のインスタンスがインストールされているかどうかを確認するには、いくつか方法がある。一番簡単なのはSQL Serverのインストール・フォルダ(デフォルトではC:\Program Files\Microsoft SQL Server)を調べることだ。この中には、デフォルトでは「80」というフォルダと「MSSQL」というフォルダがある。前者は共通のツールなどが置かれているフォルダであるが、後者の「MSSQL〜」というフォルダは各インスタンスごとに1つずつ作成される。一番最初にインストールされるインスタンス(「既定のインスタンス」という)はMSSQLというフォルダ名になり、2つ目以降のインスタンスは、「MSSQL」+「$」+「インスタンス名」というフォルダ名になる。インスタンス名は、SQL Server/MSDEをインストールする場合に、ユーザーもしくはインストール・プログラムが指定する。

 これ以外にも、[管理ツール]の[サービス]で名前を確認する方法もある。最初のインスタンスは「MSSQLSERVER」というサービス名であるが、2つ目以降は「MSSQL$INST1」「MSSQL$INST2」といったサービス名になっている。またレジストリHKEY_LOCAL_MACHINEのSOFTWARE\Microsoft\Microsoft SQL ServerキーにあるInstalledInstancesという値(REG_MULTI_SZ型)には、インストールされたインスタンス名の一覧が記録されている。

 インスタンス名が分かれば、osqlツールなどを起動するときに、「-S コンピュータ名\インスタンス名」のように指定すれば、目的のインスタンスに接続できる。

C:\>osql -S 192.168.1.123\SQLINSTANCE02 -E …インスタンス名SQLINSTANCE02を指定して接続してみる
1> select @@version
2> go

 こうやって各インスタンスに接続するか、フォルダを直接ブラウズして、ファイルのバージョンをチェックするとよい。End of Article

関連記事(Windows Server Insider)
  Windows TIPS:MSDEをセットアップする方法
  Windows TIPS:AccessをMSDEのフロントエンドとして利用する
   
  関連リンク
  [HOWTO] SQL Server Service Pack のバージョンおよびエディションを識別する方法(マイクロソフト サポート技術情報)
  Microsoft SQL Server製品ページ(マイクロソフト)
     
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間