サーバ&ネットワークの部屋  ▲前 へ ▼次 へ 一覧へ戻る  サーバ&ネットワークの部屋 メニューへ  WebBoard総合メニューへ
この投稿に対し、フォローを投稿する
日 時'97年 8月26日 17:04:40
タイトルRe(2):ACCESS2.0でマルチユーザー管理する場合の/長文ですので注意。 (閲覧回数:6080回)
投稿者@よしのさん kiwanaga@neo.ctec.co.jp

>[8月22日 02:04 Raiden Kazuboさんの投稿]
>>[8月21日 19:49 ゆみさんの投稿]
>
こんにちは。
ACCESSのセキュリティには泣いた事がありますので少し(沢山か ^^;)
見当外れだったらごめんなさい。
以下、挨拶とかお願い文は削除しています。

>>(マシン環境)
>>・サーバーにDBファイル(.mdb)格納
>>・クライアントにACCESS2,0をセットアップ
>>
>>クライアントからアクセスを起動し、サーバー内のDBファイルを扱う場合、
>>[ユーザー単位]で[各ファイル]に使用制限を設定することはできるでしょうか?
>>
>>「このユーザーはAファイルは閲覧のみ、Bファイルはレコード削除まで、
>>Cファイルは閲覧もできない」というように。
>>
>>マニュアルで、ACCESS2.0の起動・使用そのものにアクセス権を設定できることは
>>確認しました。mdbファイル単位でもできるようでしょうか。さらにいえば、オブ
ジェクト単位でも。
>>
>
> これは、ACCESSそのものが機能を持ってるかどうかってことですね。
> できれば、それにこしたことはないとは思うんですが、できなければ
> ユーザテーブルを作って、アクセス権の設定をするようにすればいいのでは。
> それで、このユーザは管理者だよとか、ゲストだよとかをチェック。
>
> ん〜、スマートじゃないし、めんどいですね。
> でも、この辺ってサーバRDBMSじゃないと出来ないような気がしたので
> 一応参考までに。
>
これ、私も以前えらい目に合いました (^^;)
結論から先に言いますと、条件付きで全て可能です。

で、その条件なのですが、ACCESS2.0の起動・使用そのものにアクセス権が設定
されていて、かつ有効(「管理者」にパスワードが設定されている)なことです。
これにはちょっと例外があるので、それは後で書きますね。パターンとして、
御質問とは少しずれるので。
1.まず、管理者用のグループを作ります。(例:G_SYSTEM)これは保険ですが。
2.スーパーユーザを作ります。(例:SYSTEM)
3.ユーザ「SYSTEM」は「管理者グループ」に必ず含めて下さい。でないと後で
  詰まります。ついでに「G_SYSTEM」にも含めます。
4.オブジェクトの所有者は、全て「SYSTEM」にしてしまいましょう。他のPC
  にファイルをコピーされたときの用心です。
5.「SYSTEM」に、全てのオブジェクトに対する全ての権限を与えます。
  メニューバーのセキュリティ=>セキュリティの設定で設定ダイアログが出ます。
6.グループ「ユーザーグループ」から全ての権限を取り上げます。
7.「管理者」から、全ての権限をひっぺがします。なぜなら、管理者のパスワード
  が無効なPCでは、全て管理者でアクセスする設定だからです。
  所有者は、自分の所有するオブジェクトに対して、様々な権限を持っています。
  コピー先で変更されて戻されたら目も当てられません。
  グループ「管理者グループ」に何か権限があれば(無かったと思いますが)、
  それも無効にします。これ、出来なかったら、8の後でもOK。
8.ACCESSを再起動して、「SYSTEM」でログイン。パスワードを設定。
  各ユーザのオブジェクトに対する権限を設定すれば終り。
  3で詰まると言っているのはここのハナシ。
  ここで、オブジェクトにカレントデータベースを選べば、MDB単位のアクセス
  権が設定できる訳です。

通常、新しく作ったユーザは、ユーザーグループに所属しています。かつ、これを
解除する方法を私は知りません。
取り敢えずユーザーグループに何か制限をかければ、有効になります。ただ、権限は
寛大なほうが優先されてしまうので、ユーザに権限を設定するときはご注意下さい。
グループを幾つか作って権限はグループに設定し、ユーザにはグループに含めること
で与える方が楽です。
ユーザやグループの情報は、ワークグループを作成していなければ、デフォルトの
SYSTEM.MDAに保存されていますよ。MDAを複数作って使い分けも可能です。(エンド
ユーザにはさせない方が良いですけど) 逆に、MDAファイルの参照如何によっては
意味が無くなるとゆー(笑) MDAファイルは、アクセスの起動時、INIファイルで
設定されたものを使用します。

なお、上記例外の話はこうです。
面倒臭いセキュリティは不要な開放されたシステムだけど、取り合えずオブジェクト
を守りたいような場合。
わざわざユーザにパスワードを求めるのも空しいですよね。
その時は上記1〜5・7と、6では与えても良い権限を残すやり方です。
そして、「管理者」のパスワードを剥がしてしまいましょう(笑)
これでユーザはパスワードやユーザ名に煩わされず、かつ許された事しか出来なく
なります。データは参照だけ、とか。
まあ、これは参考までに。

ACCESSのセキュリティは、基本的にACCESSの使用権限が有効な場合に
機能するようになっています。ですから、それ以外では、上記の例外パターンしか
無いのではないでしょうか。
でなければゆみさんがおっしゃる通り、セキュリティテーブルを作って、アクション
の度に参照させるか....。
これ、システムが小さければ良い方法ですよね。かつ、ユーザに見せるのがフォーム
とレポートだけなら結構イケます。
でも、オブジェクトが50超えたら辛いかも。

長くなりました。
少しでもお役に立てれば幸いです。
フォロー元の投稿
 ◆[ 8/21 19:49] ACCESS2.0でマルチユーザー管理する場合のファイルアクセス権について教えて下さい // ゆみさん
  >[ 8/22 02:04] Re(1):ACCESS2.0でマルチユーザー管理する場合の/別の・・・・ // Raiden Kazuboさん
<この投稿に対するフォローはありません>