Мы как-то в asp.net webforms на каждую таблицу и отдельные объекты со своей логикой давали отдельное уникальное название в таблице безопасности (назовем их rightsobject) + еще одна таблица отношений этих rightsobject с guid пользователя/роли и int правами (с побитовым указанием прав)
и в форме редактирования запускали хранимую процедуру которая возвращала права, и уже по ним велась логика может/не может
и в админ панели уже можно было гибко настроить кто что может делать.