こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Accessセキュリティ設定でのバックエンドデータ保護

 Accessを使ったアプリケーションによる社内業務改善、初挑戦の者です。

 Access2003で開発したアプリケーションを用いて社内LAN上でデータベース
を共有するため、セキュリティウィザードによって作成されるショートカットを
社内ユーザに配布して運用しています。
 ところが、配布したショートカットのプロパティはユーザが覗くことができ、
そこには実体ファイルの所在がフルパスで記述されている為、これをたどれば
ユーザが実体ファイルに直接アクセスすることができてしまうことに、きづき
ました。
 せっかくセキュリティ設定しても、改ざん(意図はなくても誤操作を含め)
や破壊のリスクがある為、なんとかしたいと考えています。
 回避する方法はないでしょうか?

 なお、アプリケーションファイルはテーブル以外のオブジェクトを含んだ
フロントエンドと、データベース本体(テーブル)のみを含むバックエンドに
分割しており、上記のセキュリティウィザードはフロントエンドに適用して
作成したものです。
 フロントおよびバックエンドのmdbファイル、およびセキュリティ設定の
mdwファイルはいずれも、関係ユーザのみがアクセス可能な社内LAN上の
特定フォルダに置いています。
 万一所在が知られても、セキュリティ設定されたフロントエンドファイルや
セキュリティ設定ファイルは開けないので良いのですが、バックエンドファイル
(データそのもの)が開かれて改ざんされてしまうことを危惧しています。
 つまりファイルが消されてしまう事故は気付くので良いのですが、データの
改ざんは、気付かずに運用継続されてしまう為、安心して運用ができません。

 回避方法のご教示を、どなたかよろしくお願い致します。
 
以上

投稿日時 - 2009-12-10 14:17:10

QNo.5512019

困ってます

質問者が選んだベストアンサー

遅くなりました、No.1~3のDexMachinaです。

> (注)2.2で、空のデータベースにインポートするという方法

すみません、職場で作成したデータベースでは、ワークグループ
管理をまだ適用しておらず、管理用のツールだけ先行作成した
状況で、その件は完全に忘れていました(汗)
大変失礼しました。


> 結果 ⇒ 別の他者は開けてしまった。
> つまり現状、開ける人と開けない人が出てきてしまいました。

こちらで確認した限りでは、新規データベースへのインポートにより、
セキュリティウィザードを適用した端末以外から開いた場合でも、
データベースに対する『開く/実行』の設定が正しく反映される
(=権限がない旨のメッセージが出て開けない)結果となりました。

念のため、こちらで行った操作を以下に記述します。
なお、前の回答ではショートカットを使用した起動方法をご紹介
しましたが、上記のテストは「既定のワークグループ情報ファイル
を変更」する形で行いました。
(No.3の冒頭と重複しますが、以下で改めて説明します)

1)Windowsのスタートメニュー等からAccessアプリケーションを起動
2)メニューで「ツール(T)→セキュリティ(T)→ワークグループ管理(G)」
 を選択して『ワークグループ管理者』ダイアログを開く
3)『参加(J)』ボタンをクリックして『ワークグループ情報ファイル』
 ダイアログを開く
4)『ワークグループ(W)』欄のアドレスを、メモ帳などに記録
 (後で元に戻すため)
5)『参照(B)』ボタンをクリックしてファイル選択ダイアログを開き、
  以前にセキュリティウィザードで作成したMDWファイルを開く
  ※一般ユーザーにデータベースを開く権限を与えていないもの。
6)「3)」のダイアログに戻ったら『OK』ボタンをクリック
 (ワークグループに参加したことを知らせるメッセージあり)
 ※これで、既定のワークグループ情報ファイルが変更されます。
7)「2)」のダイアログに戻ったら、『OK』ボタンをクリックした後、
 念のためAccessを一旦終了
8)Windowsのスタートメニュー等から、再度Accessを起動
9)『新規作成』ボタンをクリックするなどして、空のデータベースを
 作成
 →『新しいデータベース』ダイアログで『作成(C)』ボタンをクリック
  すると、『ログオン』ダイアログが開くので、管理権限を持つIDで
  ログオン
10)新規データベースが開いたら、既存のデータベースから適当に
  テーブルなどをインポートしたら、データベースを閉じる
11)「2)~6)」と同様の操作を行い、「4)」で記録しておいたワーク
  グループに設定を戻した後、新規作成したデータベースを開く
⇒【こちらでの確認結果】
  開く権限がない旨のメッセージが表示されることを確認
12)LAN上の適当なところに、新規作成したデータベース(MDB
 ファイル)をコピーし、他のユーザーの端末から開いてみてもらう
⇒【こちらでの確認結果】
  作成した端末以外に3機で確認した限り、どの端末でも開く
  権限がない旨のメッセージが表示されることを確認
  (いずれもWinXP・Pro&Access2003)


この手順を行えば、No.3の補足欄で引用されている英文の末尾で
触れられている通り、Accessの既定のユーザーID「管理者(Admin)」
に対する全ての権限の許可は解除されるはずなので、端末によって
結果が異なることは、理屈的にはなくなる、と思われるのですが・・・(汗)

こうなると、No.2の補足で説明のありました「セキュリティウィザードを
適用したことがないにもかかわらず、バックエンドファイルへのウィザード
適用でエラーとなった」ことが、ちょっと引っかかってきます。

殆どあてずっぽうのようで申し訳ないのですが(汗)、インストールされて
いるAccessのウィザードに何らかの不具合が発生している可能性を
考慮して、Accessを一旦アンインストールしてみるのも手かもしれません。

投稿日時 - 2009-12-28 23:45:12

補足

DexMachinaさん
 
 年明けより、教えていただいた方法で設定し、社内の協力者にもテストして
もらいました。
 ありがとうございました。今回はうまくいきました!! \(^-^)/ ~♪♪

 但し、一点確認ですが、10)の手順のところでデータベースを閉じる前に
セキュリティウィザードを実行し、「既定のワークグループ情報ファイルを
変更」にて最後まで完了させることを行いましたが、それで良かったの
ですよね?

 さて、そうであれば、ポイントは、手順 5)にあるように、『作成済みの
ワークグループ情報ファイルに参加した(?)状態で』、セキュリティ
ウィザードを実行させる、というところがポイントであったのかと思われます。
-------

 ★ところで、ここでひとつ疑問が生じてしまいました。★

 それは、手順 4)にて、『ワークグループ(W)』欄のアドレスを、メモ帳などに
記録(後で元に戻すため)・・・・とあるのですが、試しに、手順 11)にて
ワークグループに設定をもとに戻した後、あらためてユーザを限定すべく
作成したワークグループファイルを参照するショートカット(最初の回答で
教えていただいた方法で作成したもの)にてアプリを開いた状態で、
メニュー「ツール(T)→セキュリティ(T)→ワークグループ管理(G)」
を選択して『ワークグループ管理者』ダイアログを開いてみると、手順 11)にて
戻したワークグループファイル(ユーザが限定されていないもの)が表示
されました。
 これは一体どういう状態なのでしょう?

 疑問は、ユーザを限定している状態のはずなのに、そうではない
ワークグループファイルが表示されているという点です。
 さらに判りにくいのは、手順 5)にて「参加」し、手順 6)で『ワークグループに
参加した』とのメッセージが出た時点ではどういう状態なのでしょう?
 やはり『参加』という概念がよくわかりません。

 現在、システムがどういう状態になっているのか(どのワークグループ
ファイルによって動いているのか)がよく判らない為に、設定したつもりが
設定されていなかった、というようなことが起こっているように思われて
なりません。
 このあたりをスッキリと教えていただけると有り難いです。

 現状はセキュリティ設定はうまく機能しており、良いように思えますが、
将来、応用設定をしたい場合(例えば、ショートカットとひも付する等)別の
設定をしたい場合や、あるいは逆にファイルが開けなくなってしまうという
最悪の状況を避けるためにも、よろしくお願いします。

以上  

投稿日時 - 2010-01-07 11:15:37

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

DexMachinaです。

> 現在、どのワークグループファイルが有効になって動作しているのか
> (現在のステータス)をリアルタイムで確認する手段

失礼、それも必要だったんですね(汗)

Accessのメニューからの確認方法はなかったかと思いますが、コードを
使用すれば、一応、確認はできます。

当該mdbファイルを開いた後、キーボードでCtrl+Gの同時押しをして、
イミディエイト ウィンドウを開きます。
そこに、以下の式を入力後、Enterキーを押すと、現在使用している
MDWファイルのアドレスが、次行に表示されます:

?DBEngine.SystemDB

先頭の「?」は、その後に記述した式の結果をイミディエイト ウィンドウ
上に表示させるためのものです。
ですので、実際にVBA上で使用する場合は、「?」を除外した式にして
下さい(→「MsgBox DBEngine.SystemDB」等)。

※私自身は専ら上記の式を使っているのですが、もうひとつの式として
  「Application.SysCmd(acSysCmdGetWorkgroupFile)」
  でも確認可能なようですので、あわせて参考まで。

投稿日時 - 2010-01-08 23:03:36

お礼

DexMachinaさん

 お返事が遅くなってしまい、申し訳けありません。
 上記ご教示ありがとうございます。
 VBAとはいえ、このような機能があること知りませんでした。

 ?DBEngine.SystemDB
にて、使用されているmdwファイルが確認できました。

 このたびは色々とご教示いただき有り難うございました。
 大変助かりました。

投稿日時 - 2010-01-26 16:44:42

ANo.5

DexMachinaです。
セキュリティ設定が有効になったようで、何よりです。

> 「既定のワークグループ情報ファイルを変更」にて最後まで
> 完了させることを行いましたが、それで良かったのですよね?

はい、それでも大丈夫です。
なお、「No.4の回答の手順」と、「Spacewatchさんが実際に取られた
手順」での違いを一応説明しておくと、
  前者 → 前回のウィザードで行った権限設定をそのまま引継
  後者 → 権限設定を改めて指定
ということになります。
(前回のウィザードの結果に疑問符がつく状況だったことからすれば、
 実際に取られた手順の方が、より適切かもしれません)


> 疑問は、ユーザを限定している状態のはずなのに、そうではない
> ワークグループファイルが表示されているという点です。

メニューの「ワークグループ管理(G)」から行う設定は、あくまで「既定
のワークグループ情報ファイル(MDWファイル)の指定」になります。

一方、ショートカットを使用した場合は、既定のMDWファイルは変更
せずに、Accessに用意されたコマンドライン オプションを使用して、
一時的に別のMDWファイルを使用して権限の認証を行う形になって
います。

いってみれば、これはWindowsのExplorer上で、アプリケーションの
右クリックから「別のユーザーとして実行(A)」を選ぶのと近いかも
しれません。
(別のアカウントでログオンし直す(→現在の既定MDWファイルを切り
 替える)のではなく、一時的に別のアカウント(→別のMDWファイル)
 を使用する、という意味で:
 「別のユーザーとして実行」(→コマンドラインオプションで切替)を
 したからといって、現在のログオンアカウント(→既定MDWファイル)
 自体が変わってしまうわけではない、と)

※なお、既定のMDWファイルは、レジストリに記録されます。
 (こちらの環境では、HKey_Current_User→Software→Microsoft→
  Office→11.0→Access→Jet→4.0→Engine内のSystemDB)


>  やはり『参加』という概念がよくわかりません。

正直なところ、私もよくわかっていませんが(汗)、別のMDWファイルを
指定して「ワークグループに参加した」とのメッセージが出た後で(→
MDWファイルのアドレスと『参加』等のボタンがが表示されたダイアログ
は開いたまま)、
Windowsのスタートメニューから別ウィンドウでAccessを立ち上げ、
そちらから「ワークグループ管理(G)」を選択すると、上で指定した
MDWファイルのアドレスが表示されることからすると、
 「参加した」=「既定のMDWファイルを変更した」
程度の意味なのではないか・・・と思います。
(MDWファイル=ワークグループを規定するファイル、なので、MDW
 ファイルの切替=ワークグループの切替、となり、
 「参加先を切り替えた=参加し(直し)た」ことになる、と)


・・・以上です。

投稿日時 - 2010-01-07 22:47:09

お礼

 ありがとうございました。
 右クリックから「別のユーザーとして実行(A)」を選ぶという、たとえ話まで
出していただき(・・・当方、このような機能がWindowsにあること自体、初めて
知った次第ですが・・・(^^;)) 、なんとなくイメージがわきました。
 やはり結局のところ、現在、どのワークグループファイルが有効になって
動作しているのか(現在のステータス)をリアルタイムで確認する手段は
無いらしいということのようですね。
 つまり、直前にコマンドラインオプション指定のショートカットで立ち上げた、
あるいは直前に既定のワークグループファイルへの参加を設定し、一旦
閉じた後に立ち上げた、等、直前の操作によって、現在の状態(参照
されているワークグループファイル)が、そうなっているはずだと、理解する
しかない、ということですね。

 今後、このあたりに注意して使っていきたいと思います。

 いろいろと教えていただき、有り難うございました。
 助かりました。

以上

投稿日時 - 2010-01-08 15:53:00

ANo.3

No.1,2です。

残念ながら、疑問点(2)については情報を持ち合わせていません(汗)

エラーメッセージの(1)~(3)のうち、既定のMDWファイルを変更しての
データベース作成が「(1)」にあたるのかと思い確認してみましたが、
別のエラーメッセージによりウィザードの起動自体ができませんでした。
エラーメッセージが示す内容さえ、正確に把握できていないというのが
実情です(汗)
※MDWファイルによる権限の認証方法としては、前回紹介しショート
  カットを使用する他に、メニューで「ツール(T)→セキュリティ(T)→
  ワークグループ管理(G)」を選択して、既定のMDWファイル自体を
  変更する、というものがあります。
  (それぞれ、ウィザードの2番目の画面で表示されるオプションに相当)
  上記の「既定のMDWファイルを変更して」というのは、この方法です。


疑問点(1)については、権限の設定次第、となります。
テストプログラムのバックエンドファイルが、セキュリティ設定後に開けた
ということは、
  『ユーザー』としての「管理者」アカウントか、
  『グループ』としての「ユーザーグループ」に、
『データベース』オブジェクトに対する『開く/実行(P)』の権限を与えて
いることが推測されます。

恐らく、「管理者以外も当然データベースを使用できないと困る」と
考えて、ウィザードの4番目の画面で「ユーザー グループに一部の権限を
与える(Y)」のオプションを選択されたものと推測します。
実際には、ここでユーザーグループに権限を与えてしまうと、MDWファイル
を介さなくても、そこで許可された権限を使用できてしまうようになります。

では、MDWファイルを使用しないと開けず、かつ、管理者と一般ユーザー
を分けるにはどうするか、というと、ウィザードの3番目の画面で、適切な
新規グループを追加してやる、ということになります。
その上で、上記4番目の画面では「ユーザーグループには一切権限を
与えない(O)」を選択すれば
  管理者グループ:    全ての権限を持つ
  読み取り専用ユーザー:データの参照のみ可能
  MDW不使用時:    起動不可
といった運用が可能になります。
※セキュリティウィザード上の「ユーザーグループ」というのは、特定MDB
  ファイルのユーザーというより、「Accessユーザー」の意味合いと考えた
  方がいいかもしれません。
※MDWファイルに登録もしていないはずなのに、なぜユーザー扱いされる
  かというと、実はセキュリティ設定前から既定のMDWファイルが使用されて
  いて、既定のアカウントとして「管理者(Admin)」というものが登録されて
  おり、新規作成したMDWファイルにもこのアカウントが登録されている
  ため、のようです。
  ちなみに、私たちが作成したユーザーは削除可能(独自に設定した
  管理者アカウント1名を除き)ですが、上記「管理者(Admin)」という
  名前で登録されたアカウントは、削除できないようです。
  (なので、未登録ユーザーが起動するのを避けつつ、ユーザー間に
  権限の差をつけるには、上記のようにグループを追加するか、
  アカウントごとに権限を個別設定する、という面倒な作業が必要に
  なります:
  個別設定やグループへの権限割り当ての変更は、「ツール(T)→
  セキュリティ(T)→ユーザー/グループの権限(P)」で可能)
※管理権限を持つという意味の「管理者」と、単なる(既定の)アカウントと
 しての「管理者」があって、非常に紛らわしいですが(汗)


・・・以上、期待に添えたかは疑問ですが・・・(汗)


なお、以下も参考に:
http://support.microsoft.com/kb/305542/ja

投稿日時 - 2009-12-16 23:54:59

補足

 連絡が遅くなりました。
 疑問点(1)について教えていただいた内容をもとに、色々とテスト
試行錯誤しておりました。
 結論的には解決にいたっておりません。以下状況を報告のうえ
あらためて教えを請う次第です。

---------------

1.セキュリティの設定について

>恐らく、「管理者以外も当然データベースを使用できないと困る」と
>考えて、ウィザードの4番目の画面で「ユーザー グループに一部の権限を
>与える(Y)」のオプションを選択されたものと推測します。

とのご指摘についてですが、そうではありませんでした。
 念のため「ユーザー/グループの権限」について設定状況は
以下の通りです。
 ・ユーザーレベルで見た時、全ユーザーに対して、全ての権限
  を不許可(チェック無し)
 ・グループレベルで見た時、
   ユーザーグループには全ての権限を不許可(チェック無し)
   管理者グループには、全ての権限を許可(チェック有り)
 従って設定としては問題ないかと考えています。

2.バックエンドファイルがダブルクリックで開けてしまう状況
 に対するテスト

 自ら作成したテストプログラムなので、作成者の権限で開けて
しまう、ということかもしれないと予想し、社内のネットワーク上で
共有可能な他者に協力を依頼してテストを行いました。

2.1 教えていただいた方法によるバックエンドファイル作成

 結果 ⇒ 他者でも開けてしまう。

2.2 バックエンドファイルを一旦、空のデータベースにインポート
 した上で、もう一度教えていただいた方法によってバックエンド
 ファイルを作成

 結果 ⇒ 他者では開けなくなった。

 これで解決かと思い、念のため別の他者にも、開けないことの確認を
依頼したところ

 結果 ⇒ 別の他者は開けてしまった。
      つまり現状、開ける人と開けない人が出てきてしまいました。

-------------------
 
 以上のような状況で、わけがわからなくなってしまいました。
 現状、開発プログラムは、管理部門の関係者のみで使っている
状況のため問題はないのですが、いよいよ、社内の一般ユーザーに
利用を解放(もちろん閲覧のみの解放で、オペミスによるデータの
改ざんや破壊は防止しておきたい)する期日が迫ってきており、
困っています。
 なんとかヘルプいただきたく、改めましてよろしくお願い致します。
  
---------------

(注)2.2で、空のデータベースにインポートするという方法は、

前回の回答で教えていただきました

>なお、以下も参考に
http://support.microsoft.com/kb/305542/ja
の関連情報に掲載されている

Microsoft Access セキュリティの詳細については、次のマイクロソフト
Web サイトのホワイト ペーパー『Frequently Asked Questions About
Microsoft Access Security for Microsoft Access versions 2.0
Through 2000』を参照してください。
Frequently Asked Questions About Microsoft Access Security for
Microsoft Access versions 2.0 Through 2000
http://support.microsoft.com/default.aspx?scid=%2Fsupport%2Faccess%2Fcontent%2Fsecfaq.asp

の1の10に記述された以下文書を参考にしました。

Additionally, you may need manually to remove the Open/Run permission
from the database container for the Users group through the security
menus or through code. This will prevent someone from opening the
database by using another workgroup information file or the default
System.mda/mdw. In Microsoft Access 97, the User Level Security Wizard
is supposed to remove the Open/Run database permissions for the
Users group, but fails to do so. The Access 2000 Security Wizard removes
permissions to the point where they are not visible on the security menus,
but testing has revealed that in Access 2000 it is possible to open a
database by using the default workgroup information file regardless of
the menu settings. The cure for both versions of Access is to create
a new, empty database while logged on as a member of the Admins
group and import all of the objects from the security-enhanced database.
You should take this step before spending too much time helping protect
objects because Access considers imported objects to be "new" and
loses the permission information that was stored in the source database.

以上

投稿日時 - 2009-12-24 16:47:08

ANo.2

No.1です。

> この問題は次の場合に発生する可能性があります。

このエラーが出る状況ですか・・・(汗)

私の経験の範囲内では、このエラーは、セキュリティの設定によって既に
何らかの制限を掛けているデータベースに対して、そのとき使用したのとは
別のMDWファイルを指定して、セキュリティウィザードを適用した場合に
発生しました。

この場合、前述のウィザードを最後まで通すためには、以前セキュリティを
設定するのに使用したMDWファイルを使用して権限の制限を解除して
やる必要があります。
(なお、ウィザードを通さなければ「権限の制限の上掛け」は可能ですが、
 例えば一方のMDWでフォームの制限を、もう一方でテーブルの制限を、
 といったことをした場合、それぞれのデザインを変更する度、或いは権限
 の制限を解除する度に、MDWファイルを切り替えてDBを立ち上げ直す
 ことになり、非常にメンテナンスをしにくくなるので、お勧めできません)

・・・ということなのですが、バックエンドファイルにセキュリティウィザードを
掛けようとしたという記憶はありますか?
もしその覚えがないか、あったとしてもそのときのMDWファイルを既に破棄
してしまっていたりすると(=つまりMDWファイルの所在がわからないと)、
残念ながら手の打ちようがありません(汗)

もしもバックエンドファイルに適用したMDWファイルが手元にあるようなら、
まずはそのMDWファイルを使用したショートカットを前回と同様に作成し、
そちらでセキュリティウィザードを使用してユーザーグループに全ての権限を
許可した上で、再度フロントエンドファイルに適用したMDWファイルにて
ウィザードを実行してみてください。

※ウィザード上での権限の切替は、「管理者(S)」のチェックで行うと、
  一括指定になるので楽です。具体的操作は下記質問での私の回答
  (No.3)の「8)」以降を参照下さい:
  http://oshiete1.goo.ne.jp/qa5516301.html
※もしもセキュリティウィザードではすべての権限をユーザーに渡すことが
 できなかった場合は、「ツール(T)→セキュリティ(T)→ユーザー/グループ
 の権限(P)」を選択して開く『ユーザー/グループの権限』ダイアログで
 手動で指定できます(→権限の設定上による制限でなく、ウィザードに
 守備範囲外があった場合の話です)。
 但し、自分自身の権限を一旦手放して『適用』を実行すると、再び
 同じ権限を持つには、別の管理者アカウントを通さなければならなく
 なるという、非常に面倒なことになりますので、ご注意下さい(汗)
 ◆お勧めしないと言った「制限の上掛け」は、この方法で行えます◆

投稿日時 - 2009-12-15 23:03:57

補足

 引き続きの回答有り難うございます。

 残念ながら過去にバックエンドファイルに対してセキュリティウィザードを
適用した記憶はありません。バックエンドにもセキュリティ設定ができる
ということは、今回教えていただいて初めて知ったくらいのことなので、
その意味からしても、過去にそのようなことを行ってはいないと思うのです
・・・。
 ところで、今回の回答で、MDWファイルを開いてMDWファイルにセキュリティ
ウィザードを適用する方法を教えていただき、非常に興味深く感じますと共に、
いくつか疑問が生じましたので、以下、改めて関連質問をさせて戴きます。

【バックエンドファイルに一度セキュリティウィザードを適用した場合、
 どうなるか・・・?】
  
 そもそも、バックエンドファイルがショートカットを介さずに直接開けてしまう
ことを回避したい、というところが質問の発端でしたが、今回、エラー終了した
ことを受け、『バックエンドに対して過去にセキュリティウィザードを適用した
可能性はないか?』を示唆されたということは、セキュリティウィザードを適用
してもなお、バックエンドファイルはショートカットを介さずに開けてしまうことが
ある、ということなのでしょうか?

 疑問に感じたため、試しに簡単なテストプログラムを作成し、分割ツールで
バックエンドとフロントエンドに分割、フロントエンドのみにセキュリティ
ウィザードを適用した後、今回、教えていただいた方法でバックエンドファイル
にセキュリティウィザードを適用してみました。
 結果、今回2回目の補足でお伝えしたような、エラーは発生せず、首尾良く
セキュリティウィザードが完了し、ショートカットから開けるようにはなりました。
 しかしながら、バックエンドファイルは相変わらず、ショートカットを介さず
ダブルクリックで開けてしまいます。
 何かがまずかったのでしょうか?

 疑問点を整理します。
(1)バックエンドファイルにセキュリティウィザードを適用しても、ショートカットを
 介さずに開けてしまうということはありうるでしょうか?
(2)バックエンドファイルにセキュリティウィザードを適用した際、エラー終了
 する理由として、「過去にセキュリティウィザードを適用したことがある」
 以外にどのような理由がありうるでしょうか?

 Accessのセキュリティ機能は、mdbファイルとmdwファイルとのひも付が
どのように行われているのか、よくわからないところがあり、これまでも
いまひとつスッキリしない部分を感じながら使っておりますが、今回の種々の
ご説明をうかがうに、その辺りについて答えが得られそうな期待があります。
 すみませんが、よろしくお願い致します。 
 ちなみに情報が遅くなりましたが、当方のバージョンはAccess2003です。

以上 

投稿日時 - 2009-12-16 12:23:08

ANo.1

> データの改ざんは、気付かずに運用継続されてしまう為、安心して運用ができません。

セキュリティの設定は、バックエンドファイルに対しても行えます。
なお、フロントエンドファイルと同様にウィザードを適用することもできますが、権限設定の
簡素化の観点から、既存のMDWファイルをバックエンドファイルに転用するための手順を
以下に説明します:

1)フロントエンドファイル用のショートカットを複製
2)複製したショートカットを右クリックし、『リンク先』のフロントエンドファイルのアドレスを
 バックエンドファイルのアドレスに書き換えて『OK』をクリック
3)上記のショートカットを使用して、管理者権限を持つユーザーでバックエンドファイルを
 起動
4)メニューで「ツール(T)→セキュリティ(T)→セキュリティウィザード(W)」を選択
5)ウィザードの1番目の画面で、「現在のワークグループ情報ファイルを変更する(M)」を
 選択して『次へ(N)』をクリック
6)2番目の画面で、権限を設定する必要があるものすべてについて、チェックをオンにして
 『次へ(N)』をクリック
7)3番目は飛ばして4番目の画面に移動し、必要に応じて権限の設定を変えたら、
 『次へ(N)』をクリック
 ※「ユーザー」「管理者」以外のグループを作成しておらず、ユーザーグループにも閲覧
   などを許可する必要がある場合は『ユーザーグループに一部の権限を与える(Y)』を
   選択すると、下側のタブ内で権限の指定が可能になります。
8)あとの画面は内容だけ確認したら『次へ(N)』で進み、最後で『完了』をクリック


・・・以上です。
これで、ショートカットを介さない限り、バックエンドは開けない(→ユーザーグループに、
データベースを開く権限を与えなかった場合)ようになります。


> これをたどればユーザが実体ファイルに直接アクセスすることができてしまうことに、
> きづきました。

これをやる(=ユーザーがアドレスをたどれないようにする)としたら、ショートカットの
代わりに、セキュリティを設定していないMDB(但しVBAにパスワードを設定)か、
ソースコードを削除したMDEを経由して当該MDBを開く、ということになります。
(MDEファイルへの変換は、メニューで「ツール(T)→データベースユーティリティ(D)→
 MDEファイルの作成(M)」で可能)

ただ、これはそれなりにVBAに慣れてからでないと難しいと思いますので(何より
説明が難しい(汗))、参考サイトの紹介だけでお茶を濁させていただきます(汗)
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsGnrlHowToAttachExternalMdb.html#OCD

※バックエンドファイルへのセキュリティ設定が行えていれば、とりあえずはどうにか
  なるのではないかと・・・(汗)

投稿日時 - 2009-12-14 23:20:04

補足

DexMachinaさん
 丁寧な回答を有り難うございます。
 ご紹介いただいた方法のうち、後者は難しそうですので、早速前者を実行
してみましたところ、うまくいきません。
 コピーと『リンク先』の編集によって新しいショートカットを作成し、これを
ダブルクリックし、セキュリティウィザードを起動し、特段の設定をせずに
次へ・・・で移動し、完了したところ、「セキュリティウィザード」という
メッセージウィンドウが開き、以下のメッセージが表示されました。

エラー'データベースの所有者を変更しているときに予期しないエラーが
発生しました。この問題は次の場合に発生する可能性があります。以前に、
(1)ユーザーとしてログオンしたときにデータベースを作成したことがある。
(2)いずれかのバージョンのAccessでセキュリティウィザードを実行した
ことがある。
(3)今回、別のユーザーとしてログオンしてセキュリティウィザードを実行
しようとしている。'
:ウィザードは正常に終了しませんでした。

 ショートカットのダブルクリックで開くファイルは、指定したバックエンド
ファイルに間違いはありませんし、セキュリティウィザードの最後に自動表示
されるファイル名も、指定したバックエンドファイルがフルパス表示されて
おりますので、そのあたりのミスは無いものと思います。

 どうしたものでしょうか?ご教示いただきたくよろしくお願いします。

以上

投稿日時 - 2009-12-15 10:11:51

あなたにオススメの質問