Модель безопасности объектов связанных серверов
Мне нужно заблокировать доступ к связанному объекту сервера на сервере MSSQL.
Я строю представления на базе данных хоста, из которой я запрашиваю заполнение промежуточной таблицы на моем сервере хранилища. Я использую Data Tools/SSIS для извлечения данных вида. Чтобы упростить пакет служб SSIS, я использую OPENQUERY
синтаксис для запроса объекта связанного сервера, который существует на моем сервере хранилища и подключается к другим серверам SQL, серверам Oracle и т. д. через объекты связанного сервера.
Чтобы обеспечить доступ к связанным серверам, я настроил локальную регистрацию SQL на хосте базы данных, который имеет доступ для чтения, затем я использую "Быть созданным с использованием этого контекста безопасности:" и пропускаю локальную регистрацию SQL. Это работает просто отлично.
Теперь я понимаю, что у меня есть проблема: любой пользователь с доступом к хранилищу может запросить связанный объект сервера из-за этого скрытого контекста безопасности! Я не хочу этого! Мне нужны люди, которые должны иметь доступ, чтобы иметь возможность запрашивать (чтобы я мог писать свои пакеты служб SSIS), а также учетную запись службы агента SQL Server, чтобы иметь доступ, чтобы при выполнении задания агента SQL Server от имени этого пользователя он мог успешно запросить связанный сервер.
Я полагаю, что ключ к блокировке доступа к запросу к связанному объекту сервера находится где-то в "Входе локального сервера в сопоставления входа в систему удаленного сервера", но мне трудно это выяснить. Когда я пытаюсь добавить, например, NT SERVICE\SQLAgent
привязанный к локальному логину с доступом, затем сохраняю, я нажимаю "Ошибка входа в систему для NT AUTHORITY\ANONYMOUS LOGON" при сохранении.
Любые идеи о том, как я могу разрешить группам безопасности, которые имеют доступ, и учетной записи службы агента SQL Server для запроса связанного сервера, но не остальным людям с доступом к хранилищу?
1 ответ
Это известно как проблема "двойного прыжка"
( https://blogs.technet.microsoft.com/askds/2008/06/13/understanding-kerberos-double-hop/)
и чтобы избавиться от ошибки анонимного входа в систему, вам необходимо правильно настроить сквозную аутентификацию Kerberos;
Однако это довольно сложно - вы упоминаете, что для "упрощения" пакета служб SSIS вы используете связанный сервер, однако SSIS решает именно эту проблему... Почему бы вам просто не использовать SSIS для копирования данных с другого сервера, чтобы избежать использования связанный сервер?