- ベストアンサー
LAN上のmdbのプロテクト
サーバーパソコンにMDBファイルをおき、クライアント上のVisual Basicでのプログラムからそれに接続して操作します。通常、サーバーで共有設定しクライアントからサーバー上のこのMDBが見えていないと接続できないと思うのですが、そうすると、クライアントから当該プログラムを使わずとも、このMDBの閲覧や削除などができてしまいます。 このように接続して、しかも、そうした閲覧や削除ができないようにするということは可能なのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
仕様的に業務でそのような設計を(強制的に?)受け入れないのといけないのでは、と思いますが。 ADO接続を行う直前に、Dir等を利用して対象のMDBファイルがあるかないか確認するぐらいで良いと思います。 予算の関係でMDBを選択しましたので、運用上ファイル削除、リネームなどは避けてください。 と言うだけで(実際には言わなくても)OKでしょう。 きちんとしたセキュリティを施したければ、本格的なDBサーバーを構築する必要があります。 管理などの面で専門知識が必要になりますので、きちんとした管理者を立てていただくか、または運用サポート契約をしてください。 また、開発予算(見積もり)がアップします。 と、いう交渉を営業/営業開発の人にお願いすればいいと思います。 ま、それで本格的なDBサーバを構築すればセキュリティ上等安全かと言えば、サーバマシン上でDBサーバの動作に必要なファイル等削除したり、AdminToolでデータベースやデータを削除したり可能なので、完全に安全ではないです。 結局はMDBのセキュリティ上の問題も、その延長線上ってことで。 #1さんの提案は、(当方が理解する限りでは)補足にて書かれている通りの理解で良いと思います。
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
MDBにAdministratorのパスワードをかけるのはどうだろう。ADOで接続するのならADODB.Connection.Open()時にパスワードも指定できる。そうすると、プログラムからは開けるけど、共有を直接開こうとするとパスワードを聞かれて開けない。まぁ、このパスワードを知っとる奴には開かれてしまうが。 ただ、この共有にMDBを置いて突っつかせるというのはMicrosoftも「できればやめてね」と言っているように、MSDEやPostgreSQLに置き換える事を私としてはお勧めする。
補足
早速ありがとうございます。 このパスワードというのは、データベースを開く際にAccessに入れるパスワードでしょうか。あるいはwindowsにおけるファイルに対するパスワードでしょうか。 もし、前者だとすれば、開くことはできないとしても、ファイルとして削除したりrenameしたりはされてしまう可能性があると思うのですが。 後者のパスワードをADODB.Connection.Open()で指定できるのでしょうか。指定方法を説明したページとかあれば教えて頂ければ助かります。
お礼
お礼が遅れて失礼致しました。 こうしたセキュリティは無理だということですね。 ありがとうございました。