链接服务器与Ad Hoc(OpenRowset / OpenDatasource)分布式查询

时间:2015-06-17 14:41:45

标签: sql-server linked-server sql-server-2014

我有一个应用程序需要从位于客户端位置的不同客户端数据库中获取数据。因此,除了公司名称,地址等常规详细信息外,我还会存储其数据库服务器的名称以及我需要查询的数据库的名称。

客户端数量目前为零。但是,我预计一年内这个数字会增长到200+左右。

我对运行分布式查询的选项感到困惑:

  
      
  1. 为每个客户创建链接服务器(最多200 +!)
  2.   
  3. 在SP中使用OpenDataSource()或OpenRowset()ad-hoc查询,从客户端动态地提供数据库服务器和数据库名称   帐户表
  4.   

选项2听起来最容易管理,因为如果客户要移动他们的服务器或其他什么,他们只需要在他们的帐户中更新他们的详细信息一次, 的所有内容都可以正常工作。

但我感到困惑的原因是因为微软网站上的这句话:

  

OPENDATASOURCE仅应用于引用OLE DB数据源   很少访问。对于任何数据源   多次访问,定义链接服务器。

外部数据库将被频繁访问,大多数事务都是SELECT语句。

我也不确定安全隐患以及哪种选择对安全性更为严格。有没有人有这方面的经验,可以给我一些提示吗?

1 个答案:

答案 0 :(得分:1)

我用过两者。如果数据库具有查找数据并且经常连接,则通常使用链接服务器。使用动态opendatasource连接到客户端计算机没有任何问题。要非常安全地了解您存储客户凭据的位置和方式。您可能应该阅读加密密码和用户名。