アクセス2000でデータベースを使用してWindowsアプリケーションを開発しています。以来、私は常に開発を行ってきたため、データベースのセキュリティ保護に関する知識はほとんどありません。そして今、私がそれを学び、苦労する時が来ました。
データベースは、ネットワーク サーバー上の共通の共有場所にあります。データベースを保護して、誰もその場所から開くことができず、Windows アプリケーションを介してデータを読み書きできるようにする方法を知りたいです。
アクセス2000でデータベースを使用してWindowsアプリケーションを開発しています。以来、私は常に開発を行ってきたため、データベースのセキュリティ保護に関する知識はほとんどありません。そして今、私がそれを学び、苦労する時が来ました。
データベースは、ネットワーク サーバー上の共通の共有場所にあります。データベースを保護して、誰もその場所から開くことができず、Windows アプリケーションを介してデータを読み書きできるようにする方法を知りたいです。
データセキュリティが必要な場合は、データストアとしてJet/ACE以外のものを使用する必要があります。
あなたの質問の最後の文はかなり不明確ですが、それは矛盾しているように聞こえます。Jet / ACEデータベースを編集できるようにするには、ユーザーはファイルシステム内のデータベースに対する完全なCHANGE権限を持っている必要があります。これを回避する方法はありません。
確かに、MDB形式を使用する場合は、Jetユーザーレベルのセキュリティを使用できますが、それはかなり前にクラックされており、Googleがそれをクラックするために必要なものを購入するのに約10分かかります。また、面倒で正しく実行するのは困難です(多くの人は、Jet ULSでデータベースを保護するという動きを経験し、データベースを大きく開いたままにして、物事をより複雑にする以外に何も達成しません)。
A2007のACCDB形式では暗号化がはるかに強力ですが、データベースのパスワードはセキュリティシアターです(そして簡単に解読できなくなりました)。ただし、フロントエンドアプリケーションでパスワードをエンコードする必要があります。何をしているのかわからない場合は、16進エディターでパスワードを検索するためのオープンな招待状です。
セキュリティが必要な場合は、実際のデータセキュリティを提供するサーバーデータベースバックエンドにアップサイズします。
私が過去に Access 2000 で行ったことは、フロント エンド データベースとバック エンド データベースの作成です。バックエンドには生データのみが含まれます。フロントエンドには、フォーム、レポートなどが含まれます。
バックエンドでは、シフト キーのバイパスを無効および有効にするために使用するフォームを作成します。フォームには「バイパスを有効にする」ボタンと「バイパスを無効にする」ボタンがあります。パスワードを入力するテキストボックスもあります。それを使用するには、パスワードを入力していずれかのボタンを押します。次に、起動時にフォームが指定されるようにデータベースを設定します。Shift キーが無効になっている限り、データベースにアクセスしてデータを直接変更することはできません。
フロント エンドでは、同じ機能を適用して、データベースに侵入し、リンクされたテーブルのデータを編集するのを防ぎます。また、フロント エンドで Jet セキュリティを使用して、彼らがアクセスできるものを管理しています。
データベースにパスワードを設定して、パスワードを知らなくても誰もデータベースを開かないようにすることができます。アプリケーションはデータベース接続を行うときにパスワードを渡す必要がありますが、それはかなり標準的です。
欠点は、Accessデータベースのパスワード保護がそれほど強力ではないため、何らかの犯罪目的を持った技術的に才能のある人がパスワードを破ることができることです。
1 つの Windows アカウントのみがアクセスできるようにいくつかの ACL を設定し、Windows アプリケーションを使用してそのアカウントになりすます必要があるようです。