首页 > 代码库 > Chapter 1 Securing Your Server and Network(12):保护链接服务器

Chapter 1 Securing Your Server and Network(12):保护链接服务器

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38438363,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。

        前一篇:http://blog.csdn.net/dba_huangzj/article/details/38398813

 

前言:

 

链接服务器(Linked Server)可以使两个不同的SQL Server实例甚至和其他类型的RDBMS进行互访。通过链接服务器,可以实现分布式查询,类似于一个应用程序,把连接目标服务器的连接字符串预存起来。

链接服务器可以引用远端的SQL Server,或者任意支持已经装在SQL Server所在机器上的OLEDB Provider的其他数据源。

当创建链接服务器时,有一些注意事项需要考虑。会在本文中介绍

 

实现:

 

1. 在SQL Server Management Studio中,打开【服务器对象】节点,右键【链接服务器】,点击【新建链接服务器】:

image

 

2. 选择名称和数据provider。如果目标服务器页尾SQL Server,输入目标服务器的实例名并选择SQL Server作为服务器类型:

image

 原文出处:http://blog.csdn.net/dba_huangzj/article/details/38438363

3. 在【安全性】页,映射必须的登录帐号,如果本地和远程登录具有相同帐号名和密码,可以勾选【模拟】,这样SQL Server就不需要存储密码到配置中:

image

 

4.选择如何处理没有定义在映射列表中的帐号:

不建立连接(Not be made) 指定不对列表中未定义的登录建立连接。
不使用安全上下文建立连接(Be made without using a security context) 指定对于列表中未定义的登录,不使用安全上下文建立连接。
使用登录名的当前安全上下文建立连接(

Be made using the login‘s current  security context)

指定对于列表中未定义的登录,使用登录的当前安全上下文建立连接。

如果使用 Windows 身份验证连接到本地服务器,则使用 Windows 凭据连接到远程服务器。

如果使用 SQL Server 身份验证连接到本地服务器,则在连接到远程服务器时需要使用登录名和密码。

在这种情况下,具有完全相同的名称和密码的登录必须存在于远程服务器中。

使用此安全上下文建立 (Be made using this security context) 指定对于列表中未定义的登录,使用 “远程登录”和 “使用密码”框中指定的登录名和密码建立连接。

远程登录必须是远程服务器中的 SQL Server 身份验证登录。

 

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38438363

image

 

原理:

 

链接服务器把连接字符串存储在SQL Server实例中,可以定义如何访问链接服务器。从安全性观点考虑,最好在映射列表中限制访问,并选择【不建议连接】。

 原文出处:http://blog.csdn.net/dba_huangzj/article/details/38438363

更多:

 

如果使用客户端连接SQL Server并通过链接服务器运行查询,或者通过模拟列表来运行,那么必须进行配置:

  1. Windows 帐号必须有权限访问链接服务器,在活动目录中(Active Directory),【Account is sensitive and cannot be delegated 】选项不能选中。
  2. 每个服务器在域环境中都必须已经注册了SPN,并且SQL Server服务的帐号必须在活动目录中为【trusted for delegation】