Межбазовая безопасность

У меня есть 2 базы данных X&Y. У меня есть пользователь на X, которому нужно получить доступ к таблице в Y через представление в X. У X есть синоним, созданный для доступа к таблице на Y. Мне нужно, чтобы пользователь получил доступ к представлению, а не к синониму (я получил это через DENY GRANT ), не обращаться к таблице в базе данных Y напрямую (разрешения GRANT не помогают). Обе базы данных находятся в одном экземпляре в SQL Server-2012. Есть ли выход из Linked Server на том же экземпляре не возможен.

Пользователь->База данных X->Вид->Синоним->База данных Y->Должен видеть данные Пользователь->База данных Y->Таблица->Не должен видеть данные


person Srimant    schedule 13.02.2015    source источник
comment
Разве вы не можете использовать хранимую процедуру вместо представления? Таким образом, вам не нужно предоставлять явное разрешение на таблицу Y пользователю X.   -  person Arvo    schedule 13.02.2015
comment
Мне нужно предоставить конечным пользователям представление для создания отчетов, им нужен только доступ к определенному набору таблиц в X и выборочным записям в таблице, присутствующей в таблицах Y. X не является проблемой, пользователь не должен видеть все записи в Y. Им необходимо присоединиться к таблицам для создания отчетов.   -  person Srimant    schedule 15.02.2015


Ответы (1)


В итоге я создал два представления с одинаковым именем (V_W) в обеих базах данных. Я написал логику для извлечения необходимого набора данных из X в представлении, созданном в Y. Я создал представление в X с помощью простого вызова представления в Y. и это сработало. Не лучший процесс, по крайней мере, я достиг своей цели.

person Srimant    schedule 19.02.2015