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

Откуда:
Сообщений: 30
Здравствуйте, человеки.

Имеется два сервера - с MSSQL 2005 (сервер А) и с MSSQL 2008 R2 (сервер Б).
Есть нужда делать с сервера MSSQL 2005 (А) select к базе на сервере MSSQL 2008 R2 (Б).
SQL-авторизации нигде нет, только виндовая.

Делал так:
1. На сервере А: exec sp_addlinkedserver 'Б', 'SQL Server'
2. Создал в AD группу и добавил в нее сервер А
3. На сервере Б добавил эту группу AD в качестве логина (object browser -> server -> Security -> logins) с ролью сервера 'public'
4. На сервере Б в нужной БД добавил пользователя с именем входа группы в AD без указания членства в ролях и схем.

Сделано так затем, чтобы от имени любой учетки из AD можно было послать запрос с сервера А на сервер Б.
Стало ОК: я захожу на сервер А по RDP под своей учеткой (domain\user), запускаю sql management studio и могу выполнить простой селект:
select * from [Б].[БД].[dbo].[таблица]
Аналогично приложение, работающее под другой доменной учеткой на сервере А может делать тоже самое, ради чего все и затевалось.

Однако.
У меня на локальной машине есть sql management studio с возможностью работы со всеми MSSQL-серверами.
Если я на своей машине из-под учетки domain\user коннекчусь к серверу А и пытаюсь выполнить такой же селект, я получаю ошибку:
Msg 18456, Level 14, State 1, Line 1
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
Теперь, если я зайду по RDP на сервер А под своей учеткой и выполню оттуда такой же селект - он отработает по прежнему.
Внезапно: если теперь я выполню этот селект со своей локальной машины - он тоже выполнится.
Опыты показали, что с того момента, как с сервера А под моей учеткой выполняется запрос к базе на сервере Б, в течении нескольких минут (10-15) я могу спокойно выполнять любые селекты к БД на сервере Б через сервер А, после чего опять начинаю получать ошибку. Стоит зайти удаленно на сервер А и выполнить селект еще раз, можно еще минут 15 работать с локальной машины.

Вопрос к знающим: почему так и как это победить? Как сделать так, чтобы соединяясь с сервером А из вне я в любой момент мог посылать селекты к серверу Б?
23 авг 11, 18:40    [11166796]     Ответить | Цитировать Сообщить модератору
 Re: Linked сервера  [new]
Glory
Member

Откуда:
Сообщений: 104751
Вы нигде не написали, что настроили Security account delegation
23 авг 11, 18:43    [11166814]     Ответить | Цитировать Сообщить модератору
 Re: Linked сервера  [new]
aleks2
Guest
Я уже задолбался писать прописные истины
https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=874911&msg=11154725
23 авг 11, 18:45    [11166826]     Ответить | Цитировать Сообщить модератору
 Re: Linked сервера  [new]
komrad
Member

Откуда:
Сообщений: 5756
On1yMe
Вопрос к знающим: почему так и как это победить? Как сделать так, чтобы соединяясь с сервером А из вне я в любой момент мог посылать селекты к серверу Б?


ответ - Kerberos delegation
сиквелы должны работать под доменными учетками, должен быть прописан setspn для обоих сиквелов и их учеток
+ в домене должно быть настроено керберос-делегирование для обоих хостов
23 авг 11, 21:14    [11167533]     Ответить | Цитировать Сообщить модератору
 Re: Linked сервера  [new]
On1yMe
Member

Откуда:
Сообщений: 30
komrad
On1yMe
Вопрос к знающим: почему так и как это победить? Как сделать так, чтобы соединяясь с сервером А из вне я в любой момент мог посылать селекты к серверу Б?


ответ - Kerberos delegation
сиквелы должны работать под доменными учетками, должен быть прописан setspn для обоих сиквелов и их учеток
+ в домене должно быть настроено керберос-делегирование для обоих хостов


Заставить все SQL работать под доменной учеткой не получится - где-то они сейчас работают под ней, где-то от local service. Этим хозяйством управляю не я, но мне хочется комфортное рабочее решение. (:
24 авг 11, 00:35    [11168420]     Ответить | Цитировать Сообщить модератору
 Re: Linked сервера  [new]
Kirillich
Member

Откуда:
Сообщений: 581
On1yMe,

так и зачем вы тогда туда лезете, если не ваше хозяйство?
ставьцете задание и пусть знающий человек делает.
или используйте сопоставление сиквельных логинов, либо через явное указание логина сиквельного
24 авг 11, 08:56    [11168819]     Ответить | Цитировать Сообщить модератору
 Re: Linked сервера  [new]
dragonfly06
Member

Откуда:
Сообщений: 3
Ребята, спасибо!

Была такая же проблема и ваши рассуждения очень помогли!

Отдельно спасиб, aleks2 за:
https://www.sql.ru/forum/actualthread.aspx?tid=874911&pg=1&mid=11154725#11154725
18 окт 11, 16:40    [11460802]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить