SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Microsoft SQL Server » Не хочет работать Linked Server с PostgreSQL (Вообще не хочет)
Не хочет работать Linked Server с PostgreSQL [сообщение #5610] Thu, 24 October 2024 11:21 Переход к следующему сообщению
DaniilGray в настоящее время не в онлайне  DaniilGray
Сообщений: 18
Зарегистрирован: October 2024
Junior Member
Дано: MS SQL Server (в домене Windows) и Postgresql на Linux.
К Postgresql из Windows подключение через учётки домена Windows с использованием Kerberos (на самом Postgre учётки занесены в группу krb_users).
На сервере, где стоит MS SQL Server, установлены odbc-драйвера Postgresql, и создан системный источник данных.
Далее - на Windows-сервере, где стоит MS SQL Server, через удалённый рабочий стол запускаю Management Studio, подключаюсь к MS SQL Server и:
1) На основе системного источника данных в MS SQL Server создаю Linked Server к Postgresql;
2) добавляю в разделе безопасность Linked Server-а юзера с олицетворением (свою windows-учётку);
3) запускаю запрос к Linked Server-у - всё работает.
4) отключаю удалённый рабочий стол.

На рабочей машине запускаю Management Studio под той же учёткой, что и на Windows-сервере, подключаюсь к MS SQL Server, запускаю тот же запрос, что и во время подключения к windows-серверу через удалённый рабочий стол, и получаю ошибку:
В пакете безопасности отсутствуют учетные данные.

И как с этим бороться?
Re: Не хочет работать Linked Server с PostgreSQL [сообщение #5612 является ответом на сообщение #5610] Fri, 25 October 2024 15:13 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 368
Зарегистрирован: June 2022
Senior Member
Кто эту ошибку возвращает и как она полностью выглядит?
Смарт карты и т.д. используются или по паролю?
Re: Не хочет работать Linked Server с PostgreSQL [сообщение #5660 является ответом на сообщение #5612] Thu, 31 October 2024 22:13 Переход к предыдущему сообщению
jffulcrum в настоящее время не в онлайне  jffulcrum
Сообщений: 10
Зарегистрирован: September 2024
Junior Member
Пока у вас сеанс на самом Windows сервере с SQL - данные токена берутся на самом деле от сеанса, а не от того, что вы там в management studio вбили. Вы сеанс закрыли - и токен пропал. Вам надо одно из двух:
1. Предоставить доступ на Linux для учетной записи, под которой работает служба SQL Server. Обычно это локальная учетка службы, то есть доступ предоставляется учетной записи компьютера в домене
2. Делегировать учетной записи учетной записи, под которой работает служба SQL Server (учетной записи этого компьютера в общем случае) права на представление выбранной учетной записи для подключения к Linux. Тогда служба SQL Server сама сможет, пользуясь сохранёнными данными, получать токен. Делается это в AD.

1а. Есть, конечно, и вариант просто держать нужный сеанс пользователя на сервере. Например, с помощью службы, сделанной через srvany, висеть может хоть cmd.exe - пока процесс в памяти, в памяти будет и токен, и SQL сможет его брать. Не рекомендуется, т.к. при смене пароля или любых атрибутов учетной записи пользователя токен превратится в тыкву и придется возиться со службой снова.

[Обновления: Thu, 31 October 2024 22:16]

Известить модератора

Предыдущая тема: Вопрос по запросу с исключением текстовых значений
Следующая тема: Состояние базы "Ожидание восстановления"
Переход к форуму:
  


Текущее время: Wed Dec 18 11:55:55 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00637 секунд