Начало » Использование СУБД » Microsoft SQL Server » Не хочет работать Linked Server с PostgreSQL (Вообще не хочет)
Не хочет работать Linked Server с PostgreSQL [сообщение #5610] |
Thu, 24 October 2024 11:21 |
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 [сообщение #5660 является ответом на сообщение #5612] |
Thu, 31 October 2024 22:13 |
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 секунд
|