• ベストアンサー

LAN上のmdbのプロテクト

 サーバーパソコンにMDBファイルをおき、クライアント上のVisual Basicでのプログラムからそれに接続して操作します。通常、サーバーで共有設定しクライアントからサーバー上のこのMDBが見えていないと接続できないと思うのですが、そうすると、クライアントから当該プログラムを使わずとも、このMDBの閲覧や削除などができてしまいます。  このように接続して、しかも、そうした閲覧や削除ができないようにするということは可能なのでしょうか。

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

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

仕様的に業務でそのような設計を(強制的に?)受け入れないのといけないのでは、と思いますが。 ADO接続を行う直前に、Dir等を利用して対象のMDBファイルがあるかないか確認するぐらいで良いと思います。 予算の関係でMDBを選択しましたので、運用上ファイル削除、リネームなどは避けてください。 と言うだけで(実際には言わなくても)OKでしょう。 きちんとしたセキュリティを施したければ、本格的なDBサーバーを構築する必要があります。 管理などの面で専門知識が必要になりますので、きちんとした管理者を立てていただくか、または運用サポート契約をしてください。 また、開発予算(見積もり)がアップします。 と、いう交渉を営業/営業開発の人にお願いすればいいと思います。 ま、それで本格的なDBサーバを構築すればセキュリティ上等安全かと言えば、サーバマシン上でDBサーバの動作に必要なファイル等削除したり、AdminToolでデータベースやデータを削除したり可能なので、完全に安全ではないです。 結局はMDBのセキュリティ上の問題も、その延長線上ってことで。 #1さんの提案は、(当方が理解する限りでは)補足にて書かれている通りの理解で良いと思います。

daguzhesheng
質問者

お礼

お礼が遅れて失礼致しました。 こうしたセキュリティは無理だということですね。 ありがとうございました。

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 MDBにAdministratorのパスワードをかけるのはどうだろう。ADOで接続するのならADODB.Connection.Open()時にパスワードも指定できる。そうすると、プログラムからは開けるけど、共有を直接開こうとするとパスワードを聞かれて開けない。まぁ、このパスワードを知っとる奴には開かれてしまうが。  ただ、この共有にMDBを置いて突っつかせるというのはMicrosoftも「できればやめてね」と言っているように、MSDEやPostgreSQLに置き換える事を私としてはお勧めする。

daguzhesheng
質問者

補足

 早速ありがとうございます。  このパスワードというのは、データベースを開く際にAccessに入れるパスワードでしょうか。あるいはwindowsにおけるファイルに対するパスワードでしょうか。  もし、前者だとすれば、開くことはできないとしても、ファイルとして削除したりrenameしたりはされてしまう可能性があると思うのですが。  後者のパスワードをADODB.Connection.Open()で指定できるのでしょうか。指定方法を説明したページとかあれば教えて頂ければ助かります。

関連するQ&A

  • JavaでMDB

    JavaからMDBへ接続するプログラムを作ろうと思っていますが、環境が特殊なので、1.可能なのか、2.どうすれば可能なのか、といった回答にしていただければ非常に助かります。ご存知の方、いらっしゃいましたら回答のほどよろしくお願いします。手持ちの参考書などにも載っておらず困っております。 1. PCはスタンドアロン。MDBファイルにJavaからアクセスするアプリケーションは開発可能でしょうか。Access本体が無くても大丈夫でしょうか。 1. 同じくスタンドアロン環境でクライアントはアプレットとし、パーソナルサーバーのようなサーバー機能を載せ、Servletを動かしMDBにアクセスするという形。 3. Javaアプリケーションから外部プログラム(Acrobat Readerなど)を呼び出してアプリケーション内に表示することは可能でしょうか。 以上、よろしくお願いします。

    • ベストアンサー
    • Java
  • Web上のmdbへの接続

    Webサーバーやデータベースについてほとんど知識がないので、的外れだったらスミマセン。 VBやAccessで作ったアプリケーションで、Webサーバー上においたmdbファイルに接続するにはどのようにすれば良いのでしょうか? 過去スレで ■データベース → SQL Server ■Web サーバ → IIS ■開発 → Visual Web Developer という回答があったのですが、 いずれも全くタッチしたことがないので、出来れば、 ■データベース → mdb(Access) ■Web サーバー → よく分からないのですが、 HomePageに使用しているocnのサーバー ■開発 → Visual Basic が出来れば、大変ありがたいのですが。 これって、可能なのでしょうか。とんちんかんで恐縮です。

  • MDBファイル(Access)からデータを取得できなくて、困っています…

    Visual studio 2005(C#を使っています)で、mdbファイル(Access)のデータを取り込むプログラムを組もうとしているのですが、上手くいかなくて困っています。 具体的には、 (1)mdbファイルに接続 (2)mdbの1行分の複数のデータを配列にそれぞれ格納 (3)格納したデータ(数値)をグラフ上にプロット というプログラムです。教えて頂きたいのは、(1)と(2)を実現するプログラムです。何冊かテキストを読み、書かれていたサンプルプログラムを打ち込んでみたんですが、どうも上手くいきません。 宜しくお願い致します。

  • サーバー上のmdbファイルをクライアントPC上のMSアクセスで開くhtml作成したい。

    社内のサーバにあるMSアクセスで作成したmdbファイルをクライアントPCから社員が共有して入力してもらう為に、グループウエア(web)上にリンクを貼りましたがそのリンクをクリックするとmdbファイルのダウンロードになってしまいます。 グループウエア上に、各クライントのPCのアクセスを起動してサーバ上にあるmdbファイルを開き、共有して入力できるようなリンクを貼りたいのですがどうしたら出来ますか?

  • accessのmdbリンクの仕方

    Cドライブに共有フォルダをつくり、そこにデータのみ(会員管理mdb)とフォームのみ(会員mdb)をつくりました。他のPCからはデータのみのmdbは開けるのですが、フォームのみのmdbはエラーになってしまいます。(エラー内容:C¥共有¥会員管理mdb'は正しくありません。パス名に間違いがないことと、ファイル名が置かれたサーバーに接続していることを確認してください) なぜなのでしょう?初心者なのものでもうしわけございませんが、どなたか教えていただけますでしょうか?

  • Accessファイルの共有について

    一台のサーバーPCと数十台クライアントPCでLANを組んでいます。サーバーPCのOSはWindows2003でクライアントはWindoesXP若しくはWindows2000です。 ここで、質問はAccess2000のmdbファイルの共有についてです。 サーバーの共有フォルダーにあるmdbファイルをクライアントで共有で使っているのですがうまく開かないことがあります。具体的には数台のクライアントPCからはサーバーの共有フォルダーをクリックするとログオンパスワードを聞いてきますので入力するとそのフォルダーが開き、mdbファイルをダブルクリックするとファイルが開きます。しかし、他のクライアントPCからはこの方法では開きません。クライアントPCで先にAccess2000を起動させえておき、そこからファイル→開く→マイネットワークと進みます。そしてパスワードを入力してログオン完了後、該当のmdbをクリックすると開きます。 なぜ、このようなことが起こるのかわかりません。後者の方法だとショートカットも張れないし不便を感じています。すべてのクライアントPCから前者の方法でmdbファイルを開きたいのですが何か設定が必要なのでしょうか。 各クライアントPCからサーバーへはPingが通りますのでネットワーク的にも問題はないように思えるのですが、アドバイスお願いできますでしょうか?

  • 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を更新しないようにし、参照のみにするということです。 よろしくお願いします。

  • mdbに接続できません

    OS:Windows2008server SP2 Access Version:2000 はじめまして。 Windows2008Server上へ、Windows2000上のASPを移植しましたが、ADOでMDBに接続すると 「プロバイダーが見つかりません」というエラーでMDBが開けません。 サーバーは本番系、開発系で、同一のWindows2008Serverを準備しているのですが、 本番系では接続できるのですが、開発系はエラーとなります。IISのデフォルト設定、 OSのデフォルト設定、仮想ディレクトリへのアクセス制限等があるのかもしれません が解決できません。詳しい方、ご教授ください。 以下、この投稿を行うにあたり、前提条件、事前に確認したことを列挙します。 OS、MDBについては上記の通り。 ・MDBへ接続するため、マイクロソフトのサイトからaccessdatabaseEngine(32ビット)を  ダウンロードしてインストール ・IIS7.0にMDB参照用のサイトを構築、ASPでネットワーク経由でMDBを操作する。 ・言語はJscript(更新用),VBscript(参照用)。 ・本番系、開発系とも、Provider=Microsoft.ACE.OLEDB12.0、Connectionstring="ADODB.CONNECTION"、  フルパスでDSN指定 ・本番系、開発系のiisのアプリケーションプール、MDB参照のサイトを確認した結果、同一であった。 ・レジストリに指定してあるMicrosoft.ACE.OLEDB12.0のDriver、SetUpに対応するDLLは存在する。 ・ODBCのレジストリを比較した結果、同一であった。 ・「test.udl」を作成してMDBへの接続して接続テストを行うと接続ができる。 ・32ビットアプリケーションはアプリケーションプールの詳細設定でTRUEとしている。

  • MDBファイルをサーバーにおきたい

    アクセスのMDBファイルを LANで繋がれていないパソコン1、パソコン2から それぞれ閲覧のみできるようにしたいため どこかのサーバーにデーターを置きたいのですが 何かお勧めはありますか? (レンタルサーバーとかになるのでしょうか?) よろしくお願いします。

  • VB2005でmdbに接続するには?

    Visual stadio2005のVB.NETでIDとパスワードを入力し、データベースに登録されているIDとパスワードと同じなら次の画面へ、違っていたらエラー表示。というプログラムを組みたいのです。 次の画面へやエラー表示と言うプログラムは自分なりに書けたのですが、accessのmdbとVB.NETとのファイルの接続方法が分からず、SQL文も必要なのでは?と思うのですが組み込み方が分からず困っています。 コネクションをしたりファイルオープンをしたりと言う、C言語のプログラムを見ましたが、良く分かりません。 ご存知の方、教えていただけませんでしょうか。 よろしくお願いします。

専門家に質問してみよう