首页 > 代码库 > Chapter 1 Securing Your Server and Network(12):保护链接服务器
Chapter 1 Securing Your Server and Network(12):保护链接服务器
未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。
前一篇: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中,打开【服务器对象】节点,右键【链接服务器】,点击【新建链接服务器】:
2. 选择名称和数据provider。如果目标服务器页尾SQL Server,输入目标服务器的实例名并选择SQL Server作为服务器类型:
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38438363
3. 在【安全性】页,映射必须的登录帐号,如果本地和远程登录具有相同帐号名和密码,可以勾选【模拟】,这样SQL Server就不需要存储密码到配置中:
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
原理:
链接服务器把连接字符串存储在SQL Server实例中,可以定义如何访问链接服务器。从安全性观点考虑,最好在映射列表中限制访问,并选择【不建议连接】。
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38438363
更多:
如果使用客户端连接SQL Server并通过链接服务器运行查询,或者通过模拟列表来运行,那么必须进行配置:
- Windows 帐号必须有权限访问链接服务器,在活动目录中(Active Directory),【Account is sensitive and cannot be delegated 】选项不能选中。
- 每个服务器在域环境中都必须已经注册了SPN,并且SQL Server服务的帐号必须在活动目录中为【trusted for delegation】