通过SQL2008链接服务器管理异类数据源

ZDNet软件频道 时间:2009-11-04 作者:IT专家网 | it168网站 我要评论()
本文关键词:SQL Server
【IT168 技术】笔者很喜欢在企业中采用链接服器来解决相关的问题。需要注意的是,在SQLServer2008链接服务器中,除了可以使用微软自带的OLE DB接口之外,还可以采用第三方的访问接口。否则的话,链接服务器可能无法正常访问特定的数据源。

  【IT168 技术】笔者很喜欢在企业中采用链接服器来解决相关的问题。笔者也建议大家这么做。不过多某些数据库管理员来说,可能链接服务器对他们还是一个新的事物。这不用担心。笔者认为只要从如下几个方面去学习,就能够对链接服务器有一个全面的认识,并顺利在企业中进行部署。

  一、 了解数据源

  如上图所示,客户端需要访问数据,这个数据存储的位置或者格式就叫做数据源。但是由于数据存储的格式多种多样,如果访问不同格式的数据,客户端需要采用不同的应用程序,显然会非常的麻烦。为此在客户端与数据源之间,就有了数据库引擎和数据库接口。在SQLServer2008链接服务器中,提供了“OLEDB访问接口”和“OLEDB数据源”接口。一般来说,OLEDB访问接口是管理特定数据源并且与其交互的DLL语句。而OLEDB数据源接口则用来标示可以通过OLEDB访问的特定数据库。在大部分情况下,链接服务器连接的都是数据库。不过其连接的不一定是SQLServer数据库,而还有可能使Oracle数据库等等。同时在一些特定的场合,数据源也可能不是数据库文件,有可能是一个文本文件或者Excle等数字表格文件或者是全文内容搜索的结果。

  所以SQLServer2008链接数据器有时候更像是一个数据源文件管理的平台。其可以通各种各样的数据源文件打交道,可以对远程服务器上的数据源文件执行相关的命令。为此企业的信息化应用中,如果包含了多种数据源文件,如即有SQLServer数据库、Oracle数据库,或者早期应用的Access数据库、文本文件等等。有了链接服务器之后,可以免去转换的麻烦。而直接通过链接服务器来访问这些数据源文件。为此笔者更愿意将SQLServer链接服务器当作一个平台,统一来管理各种各样的数据源文件。

  二、 提高链接服务器的访问安全

  无论采取何种方式来访问数据源文件,安全都是至关重要的。特别是对于一些敏感的数据与行业,如化工、金融企业等等,对于数据访问的安全都提出了比较严格的要求。如上图所示,从客户端到链接服务器,再从链接服务器到数据源文件,中间有很多可以攻击的环节。那么链接服务器有没有提供比较高的安全机制,来保障这个远程访问的安全呢?答案是肯定的。如果没有出色的安全机制,那么即使其最优越,笔者也不会向大家推荐。

  在SQLServer2008中,其提出了一种比较新的安全机制,即登录名映射。如上图所示,当客户端通过链接服务器访问数据源文件时,发送服务器必须提供登录名与密码以辨别自己的身份并进行链接。链接服务器在这个过程中采用了登录名映射的安全机制。所谓链接服务器登陆名映射指的是为特定的链接服务器和本地登陆名建立远程登陆名和远程密码。这说起来比较复杂,不过通过实例的话可以理解的更加清楚。如现在链接服务器需要连接到远程的Access数据库进行相关的操作。在链接之前,管理员需要先通过使用存储过程来添加登录名映射。如链接服务器上由一个用户名admin1,那么可以为为这个用户名建立一个admin2的映射。当用户以本地登录名admin1访问远程数据文件的时候,在网络上传输的用户名是admin2,而不是admin1。虽然这个登录名映射的工作原理比较简单,但是却能够极大的提高链接服务器访问数据的安全性。绝大部分数据库管理员都建议通过这个中登录名映射机制来提高远程访问数据的安全。

  三、 链接服务器的主要应用

  链接服务器有很多的优点,如可以访问远程服务器、能够对企业内部的异构数据源发出分布式查询、更新等相关的命令、能够以相思等方式确定不同的数据源等等。不过笔者认为,链接服务器在企业中的应用主要有两种。

  一是可以通过链接服务器来实现分布式查询。也就是说,企业中可能同时有多台SQLServer服务器,来实现负载均衡的功能。此时可以通过数据库链接服务器将企业内部的多台链接服务器合并起来,以实现分布式查询。可以说这是在SQLServer环境下实现分布式查询的最经典的配置。虽然还可以通过其他的方式来实现分布式查询,如通过复制等等。但是采用其他的技术都没有采用链接服务器那样来的灵活、易于管理。笔者相信,大部分数据库管理员都有与笔者相同的感觉。

  二是通过链接服务器来访问不同的数据源文件。企业的信息化建设有一个逐步发展的过程。一开始可能执行的信息化管理比较简单,没有采用比较专业的数据库。如有不少简单的信息化管理系统,采用的是Excle表格或者文本文件作为数据源的载体。他们跟企业后来采用的正规数据库可能会格格不入。此时数据库管理员就会遇到集成的问题。让各个数据源相对独立、各自为政,还是把他们集成起来呢?如果将其他的数据源文件全部转换为数据库文件,会有一定的难度与工作量。此时就可以通过链接服务器将多个数据源文件进行统一管理。也就是说,用户在通过客户端进行访问的时候,是感觉不到数据源有所不同。用点专业的术语,就是说数据源文件对于终端用户来说是透明的,主要通过链接服务器来判断数据源的格式并按照一定的格式进行转换。

  四、 链接服务器部署的注意事项

  链接服务器的很大一个应用主要在于处理分布式查询。当客户端应用程序通过链接服务器执行分布式查询的时候,SQLServer数据库引擎将会分析相关的命令,然后才会向OLE DB接口发送请求。然后OLE DB接口再去打开对应的基表,查询相关的结果。在这里需要注意一点,为了让查询出来的结果能够正确的通过链接服务器返回到客户端那边,这里有一个技术上的限制条件,即数据源的OLE DB访问接口必须与SQL Server实例位于同一服务器上。也就是说,OLEDB访问接口与SQLServer实例不能够分开在不同的服务器上,否则的话,就容易造成一些难以预料的情况。

  其次需要注意的是,在SQLServer2008链接服务器中,除了可以使用微软自带的OLE DB接口之外,还可以采用第三方的访问接口。不过需要提醒的是,此时运行SQLServer服务的帐户必须具有对安装访问接口的目录以及其所有子目录的读取权限和执行权限。这主要是因为我们在部署SQLServer数据库的时候,出于安全与管理的需要,往往会为其单独的设置一个用户,而不是用操作系统的管理员用户。如果用户在部署第三方访问接口的时候,采用的是管理员帐户或者其他的非SqlServer帐户,那么就必须要注意,让运行SQLServer服务的帐户具有安装有访问接口的目录以及所有子目录的读取权限和执行权限。往往需要管理员帐户或者部署第三方访问接口的帐户对其进行授权。否则的话,链接服务器可能无法正常访问特定的数据源。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134