Использование хранимой процедуры в openrowset выдает ошибку login_mapping - PullRequest
0 голосов
/ 08 октября 2018

Поскольку мне нужно заполнить представление динамическими данными, я написал хранимую процедуру для сбора данных и использования select из OPENROWSET ('SQLNCLI', 'server = ....; trusted_connection = yes', 'EXEC Stored_Procedure') как определение вида.

Насколько я знаю, вы не можете использовать переменные в своем определении представления, поэтому я выбираю этот маршрут.

Хранимая процедура собирает данные из источника связанного сервера в сочетании с собственным SQL Serverданные.Связанный_сервер имеет соответствующие настройки разрешений для удаленного пользователя и может быть успешно запрошен извне SQL Server.

Это очень хорошо работает в локальном контексте, но когда я пытаюсь использовать представление в чужой таблице PostGreSQL, яполучить ошибку ODBC.Первые ошибки включали разрешение на выполнение хранимой процедуры с помощью учетной записи пользователя вызывающей стороны.После этого я застреваю.Кажется, что соединение с сервером имеет достаточные права доступа, но вызов OPENROWSET для выполнения хранимой процедуры этого не делает (не существует login_mapping).

Однако, если я изменю SQL в команде OPENROWSET на простой оператор select(выберите * из db.schema.table), он работает нормально.

Я пытался изменить сервер в de OPENROWSET на источник данных на самом локальном сервере, чтобы удаленный пользователь выдавал себя за другого, но безуспешно.Та же ошибка login_mapping.

Я полагаю, что это связано с тем, что контекст безопасности пользователя не тот, который используется командой OPENROWSET?

Я много осматривалсяно не смог найти решение.Вы можете мне помочь?

...