2011-08-03 7 views
0

SQL Server 2005データベースを使用しているC#でアプリケーションを作成しています.Windows認証を使用しています。SQL Server 2005、権限の妥当性確認

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

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

私はストアドプロシージャコールの権限をチェックするのが好きではありません。何人かのクラスの従業員の権限が変更された場合、それらのすべてを書き直す必要があるからです。

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

答えて

0

権限はデータに基づいているため、アクションの前にデータをチェックする必要があります。つまり、コードのどこかにあります。 「作成」PROCで

  • は/あなたが更新 procの/ビューでは、現在のユーザーが管理者
  • であることを確認する必要があるビューは、ユーザーが列と一致していることを確認する必要があり

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

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

+0

私はもっと良い方法があると思った。ありがとう。 –