Иногда
необходимо с одного сервера
выполнить запрос к данным другого сервера. Для этого необходимо их
связать. Допустим, имеются два MS SQL Server:
srv1 и srv2. Есть задача выполнения запросов с сервера srv1 (локальный)
к серверу srv2 (удаленный). Для этого необходимо сделать следующее:
Шаг
1. Создание логинов (имен входа). Серверы будут
общаться между собой от имени пользователей. Сначала будет
происходить подключение к srv1. Соответственно, там должно быть имя
входа, от которого это будет делаться (например, user1). Его
права будут определяться теми задачами, которые он будет выполнять на
данном сервере. Затем user1 будет отсылать запросы к srv2, на котором
необходимо создать имя входа (например, user2), права которого будут
определяться исходя из действий, которые необходимо совершать user1 на
сервере srv2.
Шаг
2. Подключение к локальному
серверу. Для создания
связанного сервера удобно использовать
графическую оболочку MSSMS (Microsoft SQL Server
Management Studio). В первую очередь необходимо подключиться к
локальному серверу srv1 от имени того пользователя, который будет
отправлять запросы на удаленный сервер (user1). При этом для создания
связанного сервера необходимо наличие у него прав
sysadmin.
Шаг
3. Создание связанного сервера.
После подключения необходимо в обозревателе объектов зайти в Объекты
сервера, выбрать Связанные серверы и в контекстном меню -
Создать
связанный сервер:
В открывшемся окне необходимо установить переключатель на Сервер SQL
Server и ввести его имя:
Шаг
4. Сопоставление имен входа.
Далее необходимо перейти на вкладку Безопасность и нажать кнопку
Добавить, после чего заполнить окно, как показано на следующем рисунке:
Затем надо нажать ОК для окончания создания связанного сервера.
Теперь для выборки данных из таблицы (t1) на локальном и
таблицы
(t2) на удаленном серверах можно воспользоваться запросом вида:
select
t1.pole1,
t1.pole2, t2.pole1, t2.pole2 from
t1 inner
join
srv2.db1.dbo.t2 as
t2 on
t1.id=t2.id_t1 |
© re-stichka.narod.ru
При
публикации данного материала ссылка на источник обязательна.