Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Права поля таблицы, при обновлении объединяющей вью.  [new]
Григорий Поверенный
Member

Откуда:
Сообщений: 102
Доброго времени суток.

Столкнулся с интересной ситуацией. Задача ограничить доступ к таблицам, и контролировать доступ через вью и триггеры.

Использую MS SQL Express 2014 SP1.

Имеются две схемы и две таблицы в них. Имеется в вьюха, объединяющая данные этих таблиц по ключу, но имеющая фильтр, ограничивающий данные.

На вью создан триггер INSTEAD OF INSERT,DELETE,UPDATE

Данный триггер вставляет, изменяет, удаляет данные из таблиц используя ключ. Так же пишет историю модификации.

Имеется роль, включающая в себя вставку, изменение, удаление из этих таблиц. А так же чтение из вью.
Данная роль предоставлена пользователю.
Данные нормально предоставляются через вью. Из таблиц данные не прочитать. (хотя можно удалить и изменить, хоть целиком:-))

Теперь при попытке обновления какой то записи в БД через вью, в триггере, при выполнении обновления, используя Where ID=XXX БД требует наличие права на чтения из поля ID целевой таблицы.

Вопрос, возможно ли как то это обойти? Или возможно вообще изменить схему?
12 окт 17, 09:04    [20862730]     Ответить | Цитировать Сообщить модератору
 Re: Права поля таблицы, при обновлении объединяющей вью.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7757
Григорий Поверенный,

дайте схемам общего владельца, получите цепочку владений (см правку) и доступ к другой схеме.
12 окт 17, 12:30    [20863677]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить