Access : リンクテーブルで [パスワードの保存] が危険な理由

Access ではリンクテーブルを構成することで外部のデータソースを Access のテーブルのように扱うことができます。

リンクテーブルを構成する際に接続先として SQL Server について定義した ODBC DSN を選択し、SQL Server 認証のパスワードを保存するよう設定を行うと、パスワードを保存することの危険性を告知するメッセージが表示されます。
3

それが実際にどれだけ危険なことなのかを紹介します。

  1. 予め定義してある ODBC DSN を使ってリンクテーブルを構成します。
    この例では SQL Server 2005 に接続します。
    1
  2. [SQL Server ログイン] ダイアログでは SQL Server 認証を使用してログイン情報を構成します。
    7
  3. [テーブルのリンク] ダイアログで [パスワードの保存] をチェックします。
    2
  4. 「ファイルに保存する前にパスワードは暗号化できません。ファイルのソースを表示できるユーザーはアカウントのユーザー名とパスワードを見ることができます。」というメッセージを確認します。
    ここでは [パスワードの保存] を選択します。
    3
  5. 作成したリンクテーブルはパスワードを保存した結果ユーザーによる認証情報の入力無しで内容を確認することができます。
    4

ここまでの作業で一件落着となりがちですが、ここで ODBC 接続のパスワードを保存した accdb (mdb) ファイルをバイナリエディタで開いてみます。
(テキストエディタでも可能です)

5

パスワードを含む接続文字列が丸見えなのが分かります。
これではデータソースに強力なパスワードを設定したところで意味がありません。

なお、accde (mde) 形式でも同様に接続文字列が平文で格納されます。

この問題を回避するためには、SQL Server に接続する際の認証方式として Windows 認証 を使用します。
ODBC 用語? では [セキュリティ接続を使用する] となります。
6

Windows 認証を使用して作成したリンクテーブルを含む Access のファイルをバイナリエディタで開いてみます。
8

この通り、接続文字列で Trusted_Connection=Yes が定義され、パスワードが保存されなくなりました。

Published 金, 12 14 2007 18:01 by Ryosuke Uemoto
Filed under:

Comments

# re: Access : リンクテーブルで [パスワードの保存] が危険な理由

なかなか興味深い内容ですね。

大変参考になりました。

2007年12月14日 21:48 by 名無し

# re: Access : リンクテーブルで [パスワードの保存] が危険な理由

>>名無しさん

ありがとうございます。

環境とセキュアにするための基盤が用意されているなら、使わない手はないですよね。

2007年12月18日 11:32 by Ryosuke Uemoto

# re: Access : リンクテーブルで [パスワードの保存] が危険な理由

それ数年前にどっかの掲示板で警告した記憶があるんですが。。。

こういうの見ると access やべぇ。。。ってなるんですよ。

まあ、2007 になって警告がずいぶんマシになってますね。

昔なんて警告すらなかった記憶がありますから。

2007年12月21日 3:36 by ちゃっぴ

# re: Access : リンクテーブルで [パスワードの保存] が危険な理由

>>ちゃっぴさん

コメントありがとうございます。

操作の結果が危険なことになると気付かずアブないことになっている環境って案外多い気がします。

>昔なんて警告すらなかった記憶がありますから。

例えば Access 2003 だと同じ手順を踏んでも警告無しですね。

ヤバさ大爆発です。

2007年12月25日 11:58 by Ryosuke Uemoto