在 sys.servers 中为本地服务器启用“数据访问”服务器选项可能有哪些缺点?

在 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

我认为 DATA ACCESS 服务器选项的文档记录并不完善 - 联机丛书称它是链接服务器的一个属性。它根本没有提到您实际上可以在本地服务器上启用它以启用 OPENQUERY 调用。我注意到,当您在链接服务器上禁用 DATA ACCESS 时,您无法查询位于其上的任何表(我在环回服务器上对其进行了测试),无论是使用 OPENQUERY 还是四部分命名约定。您仍然可以调用返回行集的过程(使用四部分命名)。那么,有趣的问题是为什么它在本地服务器上默认被禁用 - 我想是为了阻止用户对它使用 OPENQUERY。

这篇文章的作者似乎也是一名 Stack Overflow 用户:-)

更新: 另一位科技博主在 2014 年也遇到了同样的问题。 也是 Stackoverflow 用户。

答案1

MS 默认将此选项设置为禁用一定是有原因的。

一段时间以来,微软产品一直试图做到“开箱即用”。这意味着需要明确启用诸如打开链接服务器的数据访问等功能。这可以防止用户(或管理员)无意中启用可能存在安全风险的选项。

相关内容