Ако искате да защититеактиви (файлове, редове на база данни, обекти на домейн, документи и т.н.) вместо функции на приложението или потребителски способности , ролевата защита не пасва много добре.
По-добър модел е да използвате списъци за контрол на достъпа (ACL), както знаете от NTFS. Почти го казахте сами, защото трябва да присвоите конкретни разрешения за всеки обект за всеки потребител или роля. Това прави ACL.
Ако трябва да защитите обекти, които в крайна сметка са редове в SQL Server, ще трябва да дефинирате персонализирани таблици за вашите ACL, тъй като SQL Server няма поддръжка за разрешения на ниво ред.
Въз основа на данните в тези ACL, трябва да приложите необходимите проверки за сигурност във вашите компоненти за достъп до данни.
Ето някои връзки към свързани SO отговори:
- Контрол на достъпа в ASP.NET MVC в зависимост от входните параметри/сервизния слой?
- Кой е най-добрият механизъм за внедряване на детайлна сигурност (т.е. оторизация) в ASP.NET MVC приложение?
- Как да внедря код на покана за споделяне на ресурс с друг потребител?