web-dev-qa-db-ja.com

ODBCパスワードはAccessで「保存」したときにどこに保存されますか?

MS AccessとODBCを使用してSQLサーバーに接続するプログラムに取り組んでいます。要件の1つは、ユーザーがSQLサーバーに接続するためのパスワードを知っている必要がないことです。 SQLテーブルをリンクするときに[パスワードを保存]チェックボックスをオンにしました。

パスワードがどこに保存されているか、そしてこのアクションが実行されたときのパスワードの安全性を誰かが知っていますか?

9
GeneralBison

指摘したいのは、質問の2番目の部分への回答は1番目の部分とはほとんど関係がないということです。

次の場合でもパスワードは非常に強力な暗号化方式で保存されています(そうではありません)。これは、いくつかの点で、まだ安全ではありません。

  1. ユーザーは、データベースに自由にアクセスできます。つまり彼は自分がやりたいことは何でもできます(共有ユーザーの権限に従って...ユーザーの権限areデータベースで制限されていますright?)。例えば。無許可のデータへのアクセス、他のユーザーのデータの削除、ごみの挿入など。
  2. これは、すべてのユーザーがODBC接続に接続している共有ユーザーアカウントがあるようです...つまり、データベースサーバーはユーザーのアクセスを制限し、データを分離する方法がありません。 、誰が何をしたかなどの追跡.
  3. いずれの場合でも、ODBCパスワードは復号化する必要がありますメモリ内、ユーザーがそれを取得し、アプリケーションを偽装して、もう一度、好きなことを行うことができます。

中間層とすべてを備えたアプリケーションを再設計する方がはるかに良いでしょう...
同じ会話でsecurityMS Accessについて話し合うのはいつも変だと思います...

絶対にできないアーキテクチャを変更する場合は、統合Windows認証を使用し、ユーザーアカウント(またはグループ)を管理用のdbロールに関連付けることを検討してください。このようにして、少なくとも各ユーザーはサーバー上に自分のアカウントを持ち、アクセスを(最小特権の原則に従って)制限し、共有アカウントはなく、データベースでの各ユーザーのアクションを追跡できます。

5
AviD

ODBCパスワードの詳細は、Windowsボックスでodbcad32.exeを起動し、ダイアログボックスを操作することで対処できます。探している詳細は、最後のいくつかの段落にあると思います- ACC2000:ODBCでMicrosoft Access .MDBを使用するとパスワードプロンプトが表示されない

3
zedman9991

これは、一般的にODBCパスワードが保存されている場所を見ると、グーグルで最初の結果でした。

それらはWindowsレジストリにプレーンテキストで保存されていることがわかります。 regeditを開き、下を見てください。

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

2
Erin Drummond