データベースのファイルをCSV形式のファイルで使用しております。
このデータベースファイルを他人が勝手に開いて見られないようにしたいのですが、何か良い方法はないでしょうか?
プログラムからは、普通に読み取れ、書き込みもできるようにしたいです。
誰か教えて下さい。どうぞよろしくお願い致します。
>>勝手に開いて見られないようにしたいのですが
これは無理でしょう・・・アプリケーションの土台にはOSがありますから
開かれても内容が分からない様に、暗号化すればよいかと思います。
回答して頂き、ありがとうございます!!
やっぱりそうですか。
たまに、ACCESSのファイルでダブルクリックして開こうとすると、パスワードを求められるような場合があるのですが、そういうふうにはできないでしょうか?
> データベースのファイルをCSV形式のファイルで使用しております。
これはローカルで使用されているのですか?
サーバーであれば、フォルダ自体に権限を設定する等、方法があるかと
思うのですが・・・
>>ACCESSのファイルでダブルクリックして開こうとすると、パスワードを求められるような場合があるのですが
自分には知識が無いので正しい答えかどうかはわかりませんが自分だと以下の様にします。
まず保存する対象を暗号化して、保存する際ファイルの先頭に5Byte位追加して
初めの1Byteをパスワードロックの有無のフラグにします。残りの4Byteを複合化に成功したか否かの判定に使用します。
(例えば4Byteをabcdにしておき複合化の際abcdで無ければ複合化失敗という様に)
実際に保存する際に拡張子を".abc"とかに変更して".abc"ファイルを、自作のアプリケーションへ関連付けします。
あとはダブルクリックで開きファイルのフラグチェックをし、パスワードロックがあればパスワードの入力フォームを表示。
入力された共通鍵でファイルの複合化をします、で4byteのキーワードを確認して正しければ・・・
皆さん本当にありがとうございました!!
GSさんのお書き込みを参考にしてみたいと思います。
どうもありがとうございました。
…ファイルを非共有モードで開いておく。
必要なときだけ解除して使う。
とか。
> たまに、ACCESSのファイルでダブルクリックして開こうとすると、パスワードを
> 求められるような場合があるのですが、そういうふうにはできないでしょうか?
ADO + mdbなら、ACCESSのほうでパスワードを設定したあと接続文字列に
Jet OLEDB:Database Password=パスワード
を追加すればいいんですが。
(例)
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " _
& "Data Source=" & filePassName & "; " _
& "Jet OLEDB:Database Password=パスワード;"
CSV形式だと、暗号化以外に方法はないでしょうね。
# CSVは素のデータをカンマ区切りで羅列してあるだけなのでテキストエディタでも開いて編集できます
なるほど!!アクセスでデータベース化したほうが良さそうですね!
大変参考になりました。komaさんありがとうございます。
あとよろしければ教えて欲しいのですが、データを色々使いまわすので、配列び格納してから使用しております。
例えば、3行5列のACCESS2000形式のデータベースファイル
ファイル名:AccData
があったとして、これを配列の変数に格納する簡単な方法はありますか?
どうか教えて下さい。
> 配列の変数に格納する簡単な方法はありますか?
ADO の「GetRowsメソッド」を試してみてください。