Мой вопрос будет уточняться: Как я могу изменить данные с помощью представления и не нужно предоставлять разрешения SELECT в таблице?SQL Server - Требуются ли разрешения на таблицы?
Я разрабатываю и разрабатываю новую базу данных в компании, в которой я работаю. В бизнес-правилах говорится, что пользователям разрешен доступ к определенным строкам только в таблицах. Поэтому я использую представления для проверки разрешений пользователя и возвращения только тех записей, к которым пользователь имеет доступ.
До сих пор так бог. Но, я должен проверить разрешения также на INSERT и UPDATE и DELETE с помощью INSTEAD-of-Triggers. Поскольку строки, которые пользователь может выбрать, могут не быть такими, что он может изменить.
Моя проблема: Когда у меня есть представление и выдаю разрешения SELECT, INSERT, UPDATE и DELETE, это не сработает. Когда я вставляю в это представление, SQL Server хочет INSERT-Permission в базовой таблице. Это не проблема. Но когда я обновляю или удаляю строки через представление, SQL Server хочет получить разрешения SELECT и UPDATE/DELETE, предоставленные в базовой таблице. Я не хочу давать права SELECT на столе.
Благодаря Крис
Использование триггеров для безопасности - это худшая идея, чем вторжение России зимой. Я вернусь к чертежной доске. – Andomar
спасибо. Это распространенная практика для обновления данных через представление? Когда я должен использовать EXECUTE AS, я должен хранить имя логина в секрете. Поскольку кто-то знает имя LOGIN, имеющее разрешения на уровне таблицы, он может войти в свою учетную запись на SQL Server и использовать EXECUTE AS. – CPMunich