資産を保護したい場合 アプリケーションの機能の代わりに (ファイル、データベース行、ドメイン エンティティ、ドキュメントなど) または ユーザーの能力 、役割ベースのセキュリティはあまり適していません。
より良いモデルは、アクセス コントロール リストを使用することです (ACL)は、NTFS でご存知のとおりです。各ユーザーまたはロールの各オブジェクトに特定のアクセス許可を割り当てる必要があるため、ほとんど自分で言いました。それが ACL の役割です。
最終的に SQL Server の行であるオブジェクトを保護する必要がある場合、SQL Server は行レベルのアクセス許可をサポートしていないため、ACL 用にカスタム テーブルを定義する必要があります。
これらの ACL のデータに基づいて、必要なセキュリティ チェックをデータ アクセス コンポーネントに実装する必要があります。
関連する SO の回答へのリンクを次に示します。
- 入力パラメータ/サービス層に応じた ASP.NET MVC のアクセス制御?
- ASP.NET MVC アプリケーションできめ細かなセキュリティ (承認など) を実装するための最適なメカニズムは何ですか?
- 別のユーザーとリソースを共有するための招待コードを実装する方法