Hvis du vil beskytte aktiver (filer, databaserækker, domæneenheder, dokumenter osv.) i stedet for applikationsfunktioner eller brugerevner , rollebaseret sikkerhed passer ikke særlig godt.
En bedre model er at bruge Adgangskontrollister (ACL'er), som du kender fra NTFS. Du sagde det næsten selv, fordi du skal tildele særlige tilladelser til hvert objekt for hver bruger eller rolle. Det er, hvad en ACL gør.
Hvis du har brug for at beskytte objekter, der i sidste ende er rækker i SQL Server, skal du definere brugerdefinerede tabeller for dine ACL'er, da SQL Server ikke understøtter tilladelser på rækkeniveau.
Baseret på dataene i disse ACL'er skal du implementere de nødvendige sikkerhedstjek i dine dataadgangskomponenter.
Her er nogle links til relaterede SO-svar:
- Adgangskontrol i ASP.NET MVC afhængigt af inputparametre/servicelag?
- Hvad er den bedste mekanisme til at implementere granulær sikkerhed (dvs. godkendelse) i en ASP.NET MVC-applikation?
- Hvordan implementerer man en invitationskode til at dele ressource med en anden bruger?