@Hint

Подмена значений столбца в таблице для конкретного пользователя?

Есть база данных MSSQL, есть несколько таблиц. Есть пользователь, который может делать только SELECT. Возможно ли не заблокировать чтение конкретного столбца, а выдавать для него свое значение? При этом надо сделать все прозрачно для пользователя, т. е. без смены имени таблицы, без создания копии БД и копирования в нее изменений.
  • Вопрос задан
  • 3429 просмотров
Решения вопроса 1
cjey
@cjey
вот так должно работать:

create table tmp ( ID INT PRIMARY KEY, TextVal varchar(10) ) insert into tmp (ID, TextVal) values (1, '1') insert into tmp (ID, TextVal) values (2, '2') insert into tmp (ID, TextVal) values (3, '3') create view vw_tmp as select ID, CASE USER_ID() WHEN 1 THEN TextVal ELSE '' END as TextVal from tmp
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Suvitruf
@Suvitruf
Java/node.js/game-dev
Если мне память не изменяет, то в MS SQL нельзя написать триггер для операции Select.
Как мне кажется, в данном случае стоит использовать хранимую процедуру вместо Select, тогда можно будет подменить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы