1

現在、ローカル Access DB (.mdb ファイル) に接続し、いくつかのテーブルのデータを使用する VB.NET で記述されたスタンドアロンの Windows フォーム アプリがあります。DB への書き込みも変更も行いません。ユーザーがアクセスできないように、このDBを保護する方法を見つけようとしています。DBをプロジェクト内の埋め込みリソースとして保存するのが最善の方法だと思います。ただし、これを機能させる方法がわかりません。

.mdb ファイルをプロジェクト リソースに追加し、そのプロパティを [埋め込みリソース] および [コピーしない] に設定しました。しかし、DB を参照して接続を作成するにはどうすればよいでしょうか。

接続文字列 "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=MyDatabase.mdb" を使用する前に

埋め込みリソースを参照して接続文字列を記述するにはどうすればよいですか?

4

3 に答える 3

2

「最善の方法は、DB をプロジェクト内の埋め込みリソースとして格納することだと考えています。」

これは通常、古い skool セキュリティに関連しています。昔、Access dB をバックエンドとして使用していた DotNetNuke 開発者は、Web からリソース ファイルをダウンロードできないため、実際には .mdb を .resources に名前変更しました。

「DB を xml などにエクスポートしてから、データベース接続ではなくストリーム リーダーを使用する方がよいでしょうか?」

いいえ。ストリームから Access ファイルを読み取ることはできません。また、XML dB の同時実行サポートは、Access データベースよりもさらに少なくなります。

本当にデータを保護する必要がある場合は、絶対に間違ったデータ ストアを選択しています。

@JohnBus​​tos は、「DB をリモートに保存し、プログラムがインターネット経由でアクセスできるようにする」と書いています。

これをしないでください。何かあれば、それをネットワーク共有に置き、アクセスを制限します。次に、アクセス dB を SQL Server にアップグレードすることを検討してください。

于 2013-02-11T22:32:26.693 に答える
0

申し訳ありませんが、これを閉じたことはありません。

私の解決策は、提案されたものよりもさらに単純でした。.mdb ファイルをプロジェクト自体に追加することができ、「リソース」ビジネス全体を混乱させることはありません。次に、ファイルの Copy to Output プロパティを「コピーしない」に設定します。そのため、.mdb はアプリにコンパイルされますが、ユーザーはファイル自体を利用できません。

于 2014-11-03T18:27:34.387 に答える