SQL View выбирает из нескольких баз данных, прокси-пользователь не имеет доступа к удаленной базе данных - PullRequest
0 голосов
/ 07 октября 2011

Я настроил несколько представлений в базе данных сервера SQL.Эти представления выбираются из хранимой процедуры, для которой в объявлении указано предложение WITH EXECUTE AS 'proxyuser'.Оператор select, который он выполняет, создается динамически и выполняется с помощью хранимой процедуры sp_executesql.Все работало правильно, пока не возникла необходимость включить соединение в таблицу в другой базе данных в определение одного из этих представлений, так что представление выбирает как из базы данных, в которой оно находится, так и из другой базы данных на том же сервере.

Ошибка, которую я получаю, заключается в следующем: основной сервер "proxyuser" не может получить доступ к базе данных "mydb" в текущем контексте безопасности.

Это то, что я пробовал:

  1. Удаление прокси-пользователя из второй базы данных и сопоставление имени входа с базой данных, как рекомендуется здесь. http://sqlmusings.wordpress.com/2008/06/12/issue-server-principal-is-not-able-to-access-the-database-under-the-current-security-context/

  2. Включение цепочки владения несколькими базами данных в соответствии с рекомендациямиздесь .. http://social.msdn.microsoft.com/Forums/en-US/sqlsecurity/thread/07dcab8c-b830-4ca9-8afc-3e75772f44d3/

и мой сценарий не соответствует требованиям, изложенным в статье технической поддержки Microsoft № 913422, в которой описывается то же сообщение об ошибке.Прокси-сервер использует проверку подлинности сервера Sql, а не проверку подлинности Windows.

Есть идеи?

Заранее спасибо.

1 Ответ

1 голос
/ 29 февраля 2012

Я, наконец, вернусь к этому после долгой дополнительной работы над другим проектом. Я решил, что больше не использую синтаксис WITH EXECUTE AS 'proxyuser'. Пользователь, с которым я соединялся, имел достаточные права для выполнения действия. Я не уверен, почему я не пробовал это раньше.

...