0

以前は、独自の認証メカニズムを実装したときに、アプリケーションの MySQL データベース内の他のテーブルとの関係を持つユーザー テーブルを作成していました。ただし、ActiveDirectoryMembershipProvider の使用を検討しているため、AD ユーザーとそれらのテーブルの間に同様の関係を作成する方法がわかりません。

この問題を解決する通常の方法は何ですか? 既存のユーザーに対応しないユーザー ID を持つレコードを誰かが挿入する可能性があるという事実を受け入れる必要がありますか? 私は現実的にはそうなるとは思っていませんが、データベース レベルで整合性を確保することに慣れています。

4

2 に答える 2

0

とにかく、MySQLを介してこれを行うことができるかどうかはわかりません。SQLサーバーを使用している場合は、ADメンバーであることを確認するC#dllを呼び出すトリガーを作成できます。そうでない場合は、DBへの挿入をブロックできます。MySQLでこのようなことができるかもしれませんが、MySQLに関する私の知識はかなり少ないです。

于 2009-12-07T14:55:18.297 に答える
0

この場合、データベースの参照整合性をあきらめる必要があると思います。レコードを DB に追加する前に、アプリケーション コードで Active Directory アカウントの存在をチェックするだけです。

理論的には、一部のユーザーが手動でアクセスして、無効な AD アカウントを参照する SQL INSERT ステートメントを入力する可能性があります。しかし実際には、多くのユーザーにテーブルへの直接アクセスを許可しないことを願っています。アプリケーション コードが DB にアクセスする唯一のものであり、アプリケーション コードが行を挿入する前にアカウントを検証しており、その検証コードがテストされている場合は、問題ありません。

安全のために、参照テーブル内のすべての行を Active Directory に対して検証する夜間のバッチ プロセスを実行できます。矛盾が見つかった場合は、電子メールを送信できます。これは整合性違反を防ぐものではありませんが、少なくともそれらについては知らせてくれます。

于 2009-12-08T03:49:39.427 に答える