Проблема SQLServer с представлением в другой базе данных

SQLServer 2008R2 имеем следующую архитектуру:

Таблица A (в базе данных A) ‹-- Представление A (в базе данных B, тот же сервер)

Пользователи должны иметь возможность выбрать представление A, но не таблицу A. Сценарий работает нормально, если таблица и представление находятся в одной базе данных. Но с данной архитектурой View A можно выбрать только в том случае, если можно выбрать Table A.

Можем ли мы решить эту проблему, не меняя «концепции разных баз данных»?


person tobi    schedule 08.12.2017    source источник


Ответы (1)


Один из способов — включить параметр базы данных DB_CHAINING в обеих базах данных. Это позволит распространить обычную цепочку владельцев на обе базы данных, пока владельцы таблиц, на которые ссылаются, сопоставляются с одним и тем же именем входа. В случае объектов, принадлежащих dbo, подразумевается, что обе базы данных должны принадлежать одному и тому же логину (AUTOORIZATION). Пользователи должны существовать в обеих базах данных и иметь разрешения на представление. Разрешения на таблицы, на которые ссылается представление, не требуются.

person Dan Guzman    schedule 08.12.2017