Назад | Перейти на главную страницу

Каковы возможные недостатки включения опции сервера «доступа к данным» в sys.servers для локального сервера?

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

Причина в том, что мы хотим бежать SELECT * FROM OPENQUERY(LOCALSERVER, '...') - подобные утверждения на сервере.

Каковы возможные недостатки включения опции сервера «доступ к данным» (псевдоним sys.servers.is_data_access_enabled) для локального сервера (sys.servers.server_id = 0)?

(Должна быть причина, по которой MS отключила эту опцию по умолчанию ...)

РЕДАКТИРОВАТЬ: оказывается, что я не первый, кто задает этот вопрос:

http://sqlblogcasts.com/blogs/piotr_rodak/archive/2009/11/22/data-access-setting-on-local-server.aspx

Вариант сервера ДОСТУП К ДАННЫМ, на мой взгляд, не очень хорошо документирован - в Books On Line сказано, что это свойство связанных серверов. Он вообще не упоминает, что вы действительно можете включить его на своем локальном сервере, чтобы разрешить вызовы OPENQUERY. Я заметил, что когда вы отключаете ДОСТУП К ДАННЫМ на связанном сервере, вы не можете запрашивать любую таблицу, расположенную на нем (я тестировал ее на своем сервере loopback), ни с помощью OPENQUERY, ни с четырехчастным соглашением об именах. Вы по-прежнему можете вызывать процедуры (с четырехчастным именованием), которые возвращают наборы строк. Что ж, интересный вопрос: почему он по умолчанию отключен на локальном сервере - я полагаю, чтобы отговорить пользователей от использования OPENQUERY против него.

Также кажется, что автор сообщения является пользователем Stack Overflow :-)

ОБНОВИТЬ: Другой технический блоггер столкнулся с той же проблемой в 2014 году. Также пользователь Stackoverflow.

Должна быть причина, по которой MS отключила эту опцию по умолчанию.

Некоторое время назад продукты Microsoft пытались быть «готовыми к безопасности». Это означает, что такие функции, как включение доступа к данным для связанного сервера, должны быть включены явно. Это предотвращает непреднамеренное включение пользователями (или администраторами) параметров, которые могут представлять угрозу безопасности.