链接服务器的安全性

更新日期: 2006 年 12 月 12 日

在链接服务器的连接过程(如处理分布式查询时)中,发送服务器提供登录名和密码以代表自己连接到接收服务器。为了使该连接有效,必须使用 SQL Server 系统存储过程在链接服务器之间创建登录名映射。

链接服务器登录名映射可以使用 sp_addlinkedsrvlogin 进行添加,使用 sp_droplinkedsrvlogin 进行删除。链接服务器登录名映射为指定的链接服务器和本地登录名建立远程登录名和远程密码。在 SQL Server 连接到链接服务器以执行分布式查询或存储过程时,SQL Server 将查找正在执行查询或存储过程的当前登录名的登录名映射。如果有一个登录名映射,则 SQL Server 在连接到链接服务器时将发送相应的远程登录名和密码。

例如,使用远程密码 8r4li034j7$ 为链接服务器 S1 建立了一个从本地登录名 U1 到远程登录名 U2 的映射。本地登录名 U1 执行访问链接服务器 S1 中存储的表的分布式查询时,则当 SQL Server 连接到链接服务器 S1 时,将 U28r4li034j7$ 作为用户 ID 和密码进行传递。

链接服务器配置的默认映射模拟了登录名的当前安全凭据。这类映射称为自映射。如果使用 sp_addlinkedserver 添加链接服务器,则将为所有本地登录名添加默认自映射。如果安全帐户委托可用且链接服务器支持 Windows 身份验证,则支持经过 Windows 身份验证的登录名的自映射。

ms175537.note(zh-cn,SQL.90).gif注意:
如果可能,请使用 Windows 身份验证。

如果在客户端或发送服务器上安全帐户委托不可用,或链接服务器/访问接口不能识别 Windows 身份验证模式,则自映射对使用 Windows 身份验证的登录名不起作用。因此,必须建立一个从使用 Windows 身份验证的登录名到链接服务器上不使用 Windows 身份验证的特定登录名的本地登录名映射。在这种情况下,如果链接服务器是 SQL Server 实例,则远程登录名使用 SQL Server 身份验证。

分布式查询受限于链接服务器授予远程登录名的对远程表的权限。但是,SQL Server 在编译时不执行任何权限验证。访问接口在查询执行时检测并报告任何违反权限的行为。

测试链接服务器

在 SQL Server 2005 Service Pack 2 中,可以测试连接至链接服务器的能力。在对象资源管理器中,右键单击链接服务器,然后单击**“测试连接”**。

请参阅

概念

链接服务器
为委托配置链接服务器

其他资源

sp_addlinkedserver (Transact-SQL)
sp_addlinkedsrvlogin (Transact-SQL)
sp_droplinkedsrvlogin (Transact-SQL)
sp_dropserver (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_serveroption (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 12 月 12 日

新增内容:
  • 添加了“测试链接服务器”部分。