0

私はデータベースSQLServer2005を使用するC#でアプリケーションを作成しています。これはWindows認証を使用します。

問題は、ユーザーがデータベースに保存されている情報に従って権限を取得する必要があることです。

Feさまざまなプロジェクトに関する情報をデータベースに保存します。各プロジェクトにはリーダーがいて、各プロジェクトは特定のフィールドに属しており、各フィールドには管理者がいます。したがって、あるプロジェクトを開始した人は、そのプロジェクトのみを変更できるはずです。管理者はプロジェクトを開始することもできますが、それでも他のプロジェクトを変更することはできません。これは、さまざまな選択、更新、および挿入のケースに適用されます。

あるクラスのワーカーの権限が変更された場合はすべてを書き直す必要があるため、ストアドプロシージャ呼び出しの権限を確認するというアイデアは好きではありません。

私の場合、アクセスを制御するための最良の方法は何ですか?

4

1 に答える 1

0

アクセス許可がデータに基づいているという事実を回避することはできないため、アクションの前にデータを確認する必要があります。つまり、どこかのコードで。

  • 「作成」proc/viewで、現在のユーザーが管理者であることを確認する必要があります
  • proc / viewの更新では、ユーザーが列に一致することを確認する必要があります

これは単純化されていますが、それはあなたがしなければならないことです。

ストアドプロシージャの場合、メンテナンスを容易にするために、すべてのチェックをほんの数か所に集中させる権限をチェックする別のストアドプロシージャを呼び出すことができます。

于 2011-08-03T08:53:27.403 に答える