• ベストアンサー

Accessのセキュリティ対策

現在Accessで業務用のアプリケーションを開発しています。 一応サーバがある環境なのですが、Accessで作成したmdbは サーバの誰でもアクセスできるフォルダに置き、みんなが利用 できるようになっています。 しかし、これでは悪意のある者がmdbのあるフォルダにアクセスし mdbをそのままコピーして持っていってしまうことができます。 又、削除してしまうこともできます。 そこで、mdbのテーブル部分をMSDEを利用して、アップサイジングし 各クライアントにはadpファイルを設置しようかと思っています。 これであれば、データはサーバのSQLサーバ(MSDE)の中なので 心配ないと思っていますが、どうでしょうか。 それほど知識のない者でも、データを取り出せたり するのでしょうか。 宜しくお願いします。

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

  • ベストアンサー
  • gadd3
  • ベストアンサー率46% (211/451)
回答No.2

詳しくないのですみませんが・・・(^^) >これであれば、データはサーバのSQLサーバ(MSDE)の中なので >心配ないと思っていますが、どうでしょうか。 たしかにMSDE2000 や SQL Server 2005 Expressであれば、共有フォルダをつくらずにマルチユーザー利用ができるので、mdbをファイルサーバなどに置くよりはセイキュリティ上はよいと思います。 >それほど知識のない者でも、データを取り出せたり >するのでしょうか。 SQL Server をインストールしたPCに、例えばログオンパスワードがかかっていないとか、パスワードが(LMハッシュで管理されているような)簡単なパスワードが設定してあるような状況ですと、SQL Server を使っていたとしても、mdf拡張子、ldf拡張子のファイルにアクセスされ、それらを簡単にコピーされてしまいます(=データを丸ごと抜き取られてしまいます)。 ですので、「SQL Server をインストールしたPCのログオンパスワードなどを厳重に運用する」、もしくは「HDDを抜き取られても大丈夫なようにする」、などの対策も必要かもしれません。 また、クライアントから各テーブルの「全件」が見えてしまえば、簡単にコピーされ抜き取られてしまうとか、削除されてしまうような可能性はあるとは思います。 ですので、テーブルの全件一覧表示は管理者しかできないようにするとか、安易に削除できないようにする、などのセキュリティ設定(ロール?だったかな…?)も必要かもしれません。 最終的には各テーブルの全件表示を禁止するのはデータベースを利用する上で難しいかもしれないので、その部分についてはあきらめ、丸ごとコピーとユーザーごとの権限設定をするということで対処するようなかたちで、「とりあえずやれるとこまで」セキュリティ設定をしていくという風で良いのではないでしょうか?

stressman
質問者

お礼

gadd3さん、ありがとうございます。 なるほど、mdfやldfを持っていかれたら 同じ事ですね(^^;) でも、ファイルサーバにMSDEは入っていますが サーバのログイン/パスワードは誰も知りません ただ、サーバ自体が作業フロアに置いてあるので そのまま持っていかれたら、意味のないことですが… テーブルの表示の制限は、 フロントエンドのmdbで制限しようと思っています。 このパソコンはここまでしか、データを扱えない という感じです。 ありがとうございました。

その他の回答 (1)

  • yoko1mgs
  • ベストアンサー率27% (220/806)
回答No.1

おはこんばんにちは、 基本的にアクセスはスタンドアロン利用すべき物と思います。 業務ソフトなら、SQLserver等で利用すべきと思います。 これ以上はよく分からないので、マイクロソフトのサイトに 多分SQL開発チームと思いますが、Accessの共有利用についての 危険性を警告しているページがありますので参考にしてみて下さい。

参考URL:
http://www.microsoft.com/japan/solutions/lob/scenario/default.mspx
stressman
質問者

お礼

yoko1mgsさん、ありがとうございます。 参照URLはとても参考になりました。 Accessがスタンドアロン前提のソフトウェアで、 ネットワーク共有で利用すると危険であることは最近分かりました。 しかし、なかなかシステム変更ができないまま 現状に至っています。 勉強して、できるだけ早い処置を実施したいと 思います。

関連するQ&A

  • Accessのセキュリティ対策

    Accessで業務用のアプリケーションを作成し サーバ上の特定のフォルダに置いてあります。 ファイルはmdbファイルです。 テーブルもクエリもフォームもレポートも 何もかも一つのmdbファイルの中にあります。 そして、各クライアント(約15台)のデスクトップに サーバ上に置いてあるmdbファイルのショートカットを 配置し、各自に利用してもらっています。 サーバ上の特定のフォルダは 言ってしまえば社員であれば誰でも見れることが できるフォルダなので、mdbファイルを削除または コピーすることが可能です。 同じようにAccessで業務アプリケーションを作成し その中に重要なデータを格納してある場合、 どのような対策を講じていますか アドバイス宜しくお願いします。

  • Accessアップサイジング後の入力一時テーブル

    MDBよりADPにアップサイジング中。access2007+sqlserver2005にて構築中です。 MDBのときはserver側にテープルすべて移動させリンクにて運用し始めたが、Dataテーブルを直接参照させ開かせると他の処理に影響があるので、入力一時ファイルを作成しておき入力フォームで入力後入力完了ボタンで、更新、追加、削除させDataテーブルに書き込ませていました。 この時server側にこの一時入力テーブルを作ると、レコードが混ざってしまうのでクライアントのMDB 上にこのテープルだけ持たしていました。 ADPにするとこの手法はとれないので(ADPにはテーブル、クエリ等持てない)どのようにすればいいのでしょうか。 くぐったりすると、ローカル一時ファイルを作るようにあるのですが具体的には理解できません。 その入力フォームが出てくるのは、親子リンクで子側のテータテープルとして使用しています(発注フォームの商品明細部分) よろしくお願いします。

  • データ入力用フォームでコントロールが表示されない

    はじめまして、 現在、ACCESS2000のMDBからADP+SQLへの移行をしているのですが。 「t_受注」テーブルをデータソースとするフォームを 「データ入力用プロパティ」を「はい」にして、 データ入力用のフォームとして使っていました。 ADPへアップサイジングしたら コントロールがまったく表示されずに困っています。 「データ入力用プロパティ」を「いいえ」にすると、 全てのコントロールと「t_受注」テーブルのデータが見えます。 どうか宜しくお願いします。

  • AccessでのリンクテーブルとADO等の使い分け

    同時接続数5程度の備品管理をしたいと思っています。 共有フォルダーとAccessで構築しようと思っていますが、いずれはDBをSQLサーバなどにしたいと思っています(その前にMSDEかもしれません)。 容易にDBを変更できるようにする方法として下記の2つを考えています。  1.リンクテーブルを用いてMDBからSQLサーバに切り替える。  2.ADOを用いる。 "2"を用いることにこしたことはないと思いますが、"1"が簡単なので、どちらにしようか悩んでいます。"1"の問題となる点がありましたら教えてください。

  • MS Accessを共有した際にファイルが壊れるのを回避する方法

    ちょっとしたツールをAccessで開発したいのですが、 Accessファイルを共有するとファイルが頻繁に壊れると伺いました。 そこで以下のような回避策を考えてみたのですが、 効果はありますでしょうか。 これでは、あまり意味がないとか、他に注意したほうが良い点等ありましたら、アドバイスいただければと思います。 なお、ツールは、50名位が使用(同時アクセスは3名~4名程度)予定で、 サーバ上にメインのmdbファイル(以下「サーバmdb」)を、各クライアントにもそれと連携するmdbファイル(以下「クライアントmdb」)を置くことを想定しています。 (1) データは全てサーバmdbで保持する。クライアントmdbには、入力用のフォームと、サーバmdbから取得したデータを一時的に保持するテンポラリのテーブルを持つ。 (2) クライアントmdbからサーバmdbにアクセスし、必要なデータをクライアントmdbにインポートする。 (3) クライアントmdbで、取り込んでデータをもとに、データの追加・修正を行い、当該データをサーバの所定のディレクトリにCSVで出力する (4) サーバmdbは、日次で、所定のディレクトに配置された、クライアントmdbから出力されたファイルを読み込み、データを更新する (5) (4)の読込み・更新作業中は、クライアントmdbからサーバmdbにはアクセスしない(外部ファイルで制御) 以上です。 要は、クライアントmdbが、直接サーバmdbを更新しないようにし、参照のみにするということです。 よろしくお願いします。

  • Accessでファイル共有

    質問させていただきます。 環境はクライアント3台(Xp Pro、すべて同じ機種)、サーバー1台(Win Server2000)、LAN100BASE-TXです。 Access2002で販売管理をつくり、プログラムMDBは各クライアント、データMDBはサーバに置き、それぞれのクライアントがリンクするようにしています。 そこで、2台以上で利用する場合、動作が遅くなります(たとえばフォームを開くのに10秒くらい)。 この環境では仕方ないのでしょうか?それとも改善できるのでしょうか?MSDEへ置き換えれば改善できるのはわかりますが、現状の環境で改善できればベストです。 以上、よろしくお願いいたします。

  • AccessとSQL server 2005 Express Editionについて

    今ある、Accessの照会システムがあります。 テーブルはサーバ(Win2003Server)にmdbファイルを置いてます。 照会画面、レポート等のプログラムは各クライアントにそれぞれmdbを置き、サーバにあるmdbファイルをリンクテーブルで参照しています。 今後照会だけでなく入力エントリプログラムを追加していくのですが そのエントリは9台同時に入力することが考えられます。 今のmdbで9台同時複数エントリはAccessのmdbでは当然無理なので 今あるインターフェースをAccessで DBをSQL server 2005 Express Editionで考えています。 容量はMAX4GBと聞いているのですがデータの規模は4GBで問題ありません。 SQL server 2005 Express Editionでクライアント9台同時接続できるのでしょうか? 費用をかけれないので無償のSQL server 2005 Express Editionで考えています。 可能かどうか知りたいのです。9台の同時接続で運用にも耐えれるのかも疑問です。Express Editionでは無理があるのかも知りたいのです。 無理であれば今ある資産を利用して費用をかけないで済む方法があれば助かります。 どうぞよろしくお願いします。

  • Accessの接続先をSQLサーバーからアクセスDBにしたい

    はじめまして、宜しくお願いします。 現在、Access2002、SQLサーバー2000を使ってタイトルのようなことを 実現したいと思っています。 現在作っているファイル名の拡張子はDBにSQLサーバーを使っているので「adp」です。 しかし、システムが完成した後で、扱うデータ量がそんなに多くないことと、SQLサーバーをDBに使うとお金もかかってしまうということが分かったため やはり、アクセスの中だけの閉じたシステム(「mdb」のような状態)にしたいと思っています。 システム自体は完成してしまっているので、mdbファイルとして 作り直すには効率が大変悪いと思っています。 そこでシステムファイルはそのままでDBの接続先だけSQLサーバーから アクセスDBに変えようと思っているのですが、 なかなかうまくいかず、行き詰っています。 もしかして、そのようなことは無理なのでしょうか? もしもなにかお気づきの方が居られましたら、 ご教授宜しくお願いします。

  • C/S型のアプリケーションを開発したい

    よろしくお願いします。 5台以下のパソコンで使えるクライアント/サーバ型のアプリを VB2005で開発しようと思っています。事務所内にVistaのパソコンが あるので、Vista対応で作ろうと思っているのですが データベースはAccess2003のmdbでも問題ないのでしょうか? というのも、データベースはmdbでしか作成したことがありません… ネットで、mdbはよく壊れる、MSDEはVistaサポート外と目にしたので ここで勉強の意味も含めて SQL Server2005にしてみようかと思っていますが、 小さい事務所で予算もないし無償のExpressEditionかMySQLかな、と思っています。mdbしか触ったことがないのでよくわかりませんが VB2005で開発すると、開発工程やユーザーの使い勝手はどうでしょうか? データベースについてまだまだ勉強不足で変な質問かもしれませんが 5台以下のクライアント/サーバ型で Vista対応のアプリケーションを作ろうと思ったら、データベースは何が良いのでしょう? データ件数はそんなに膨大ではなく、容量が1GBもあれば充分です。 アドバイスお願いします。

  • ACCESS MSDE フォーム上からのデータ更新による競合

    いつもお世話になっております。 WINDOWS XP ACCESS 2002,2003 を使用しております。 既存のMDBファイルを MSDEを使用するADPファイルに置き換え、 なおかつ複数端末による運用が可能なようにシステムを変更しております。(元々複数端末で使用しています) 以下の手順でadpファイルを作って運用使用とする場合に疑問があるのですが。 (1)MSDEデータベースに接続したadpファイルを作成。 (2)フォームのレコードソースをMSDEデータベースのテーブル、 テキストボックスのコントロールソースに、そのテーブルに存在するフィールドを設定。 (3)このadpファイルを複数マシンに置き、同時に起動。 (4)作成したフォームで同一のレコードを同時に修正。 この場合に、後のほうで更新した時に 「データの競合」ダイアログが表示され、データを反映するか、先に更新されたほうを優先するか 選択できるますが、 mdbでも同様の運用が可能ですが、この運用を続けるとデータ破損の温床になるようですので控えておりました。 MSDEを使ったadpファイルでも同様のことが言えるのでしょうか? また、もしこの運用に問題があるとすれば、非連結のテキストボックスを設けて「更新」ボタンでADOによる 更新を行わなければならないのでしょうか。 レコードをリスト形式で表示しているので出来ればそれはさけたいのですが。 どなたかご教授のほど、何卒よろしくお願いいたします。