Проблема с внедрением вашего решения безопасности в вашей клиентской библиотеке состоит в том, что оно эффективно только с клиентским инструментом.Само по себе это звучит довольно ОЧЕНЬ, но вы оставляете открытой огромную дыру в безопасности, которая представляет собой саму базу данных.Поэтому, если пользователь подключается напрямую к базе данных (например, используя Access ADP к SQL Server), он имеет полный контроль над своей ролью пользователя.Для чего им потребуется полный доступ ко всему в базе данных, если вы делаете свои ограничения в клиентской библиотеке.
Единственный случай, когда это не будет такой большой проблемой, будет с веб-приложениями и веб-службами.,Если бы ваш веб-сервис обеспечивал безопасность и скрывал его за интерфейсом веб-службы (поэтому прямого доступа к базе данных не было), то это было бы безопасно.Это может быть то, о чем вы говорите, но не указали в своем вопросе.
Если вы используете толстый клиент, есть ли причина, по которой вы не захотите использовать логику безопасности на стороне базы данных?Вы упомянули независимость от базы данных, но ничего из того, что вы указали, будет трудно обеспечить на каждой платформе.Вы в основном описываете пред- / пост-триггеры, которые проверяют, есть ли у пользователя права на редактирование записи.Полный RLS также ограничил бы права пользователя на просмотр и немного усложнил бы работу в зависимости от платформы.