Я создал роль уровня базы данных: NonBillingRole.
CREATE ROLE NonBillingRole
, затем предоставил всем доступ и отозвал / запретил доступ к таблице биллинга с помощью следующей команды:
REVOKE SELECT, INSERT, UPDATE, DELETE ON TblBilling TO NonBillingRole
DENY SELECT, INSERT, UPDATE, DELETE ON TblBilling TO NonBillingRole
Затем я Я добавил пользователя к этой роли.
Это прекрасно работает, если я непосредственно пытаюсь выбрать или изменить таблицу TblBilling. Но пользователь может выбрать и изменить таблицу с помощью любой хранимой процедуры.
Моя цель - создать роль, которая имеет полный доступ к базе данных, включая выполнение хранимой процедуры, но не имеет прямого или косвенного доступа (даже через хранимой процедуры) к таблице TblBilling.