2010-06-28 5 views
3

Я бы хотел запретить доступ к связанным серверам запросов с группой пользователей. Я поставил их в роли и назначил определенные разрешения для прав на уровне объектов для этой группы. Я в затруднении после поиска BOL и «net, как DENY доступ к связанным серверам.Sql Server: Как запретить пользователям доступ к связанным серверам

EDIT:

я решил выбиться профайлер, чтобы проверить, что именно SSMS звонит при отображении связанных серверов и убедитесь, что ОТРИЦАТЬ был выпущен на этой точке зрения системы/SP. Оказывается, он вызывает sys.servers, но Sql Server не соблюдает ACL в этом системном представлении. Это относится к другим системным представлениям (например: sys.dm_db_index_physical_stats).

ответ

5

Afaik, ссылающийся на связанный сервер, не контролируется списками управления доступом (ACL). Другими словами, вы не можете использовать GRANT/DENY/REVOKE для использования связанный сервер. Вы можете, конечно, управлять разрешением до изменить связанный сервер через ALTER ANY LINKED SERVER разрешение.

Это очевидное отсутствие разрешения связано с тем, что связанные серверы перенаправляют определенные учетные данные на удаленный сервер, контролируемый с помощью параметров олицетворения или удаленных_языков, связанных с связанным сервером. Фактическое управление доступом происходит на удаленном сервере, используя учетные данные, связанные с подключенным сервером. Поэтому, чтобы отказать группе пользователей в доступе к связанному серверу, вам необходимо запретить доступ группы к удаленному серверу на самом удаленном сервере.

+1

В зависимости от вашей настройки, я думаю, вы также можете попытаться использовать функцию сопоставления входа. Как правило, я бы предпочел интегрированную безопасность и обрабатывал все с соответствующими разрешениями для реальных пользователей на основе их фактической идентичности. –

+0

Я надеялся, что есть способ сделать это. Я помню, используя инструмент на Sql Server 200, который изменил бы разрешения на системные объекты, чтобы некоторые пользователи не могли видеть список связанных серверов, но не возможность запрашивать их. В этом случае они не могут использовать интегрированную защиту для всех связанных серверов, однако для некоторых я могу изменить настройки. Спасибо за ответ. – Chad

0

Тип аутентификации имеет важное значение. Когда вы связываете серверы, они должны быть связаны с Kerberos, а затем вы можете управлять доступом на связанном сервере. В противном случае ваша группа будет всегда аутентифицироваться по учетным данным, указанным в ссылке.

4

Вот обходной путь я просто подумал:

На Linked окне Свойства сервера, вкладка Свойства; добавьте пользователей, которых вы не хотите хотите получить доступ к связанному серверу. Затем назначьте им некоторую фиктивную комбинацию пользователей/пропусков, которая будет отклонена на целевом сервере.

+0

Спасибо за идею. Это работает, но считается ли это лучшей практикой? – FumblesWithCode

0

AFACS, связанные серверы не имеют надлежащего контроля доступа. Я хотел бы сделать следующее:

  1. Создание учетных данных для подключения к удаленному серверу
  2. Создать связанный сервер: а. Укажите роль сервера или группу AD или безопасность в качестве локального пользователя b. Укажите учетные данные как удаленный пользователь
  3. Добавьте логины в роль сервера или группу AD для управления доступом.
Смежные вопросы