远程服务器配置允许客户端连接到一个 Microsoft SQL Server 实例,然后不用另外建立连接即可在其它的 SQL Server 实例上执行存储过程。
远程服务器配置允许客户端连接到一个 Microsoft® SQL Server™ 实例,然后不用另外建立连接即可在其它的 SQL Server 实例上执行存储过程。客户端所连接的服务器接受客户端的请求,并代表客户端将该请求发送到远程服务器。远程服务器处理请求并将结果返回给原服务器,原服务器进而将结果传递给客户端。
如果打算设置服务器配置,以便在另一台服务器上执行存储过程,并且没有现有的远程服务器配置,此时应使用链接服务器而非远程服务器。可以对链接服务器执行存储过程和分布式查询;但对远程服务器只能执行存储过程。
说明 支持远程服务器只是为了向后兼容。新的应用程序如果必须对 SQL Server 的远程实例执行存储过程,应该使用链接服务器。
远程服务器详细信息
远程服务器是成对设置的。若要设置一对远程服务器,请将这两台服务器配置为彼此将对方识别为远程服务器。然后,验证这两台服务器的配置选项设置是否正确,以使每个 SQL Server 实例都允许远程用户执行过程调用。检查本地和远程服务器上的"服务器属性"对话框中的配置选项。
大多数情况下,不需要为远程服务器设置配置选项;SQL Server 安装程序在本地和远程计算机上设置的默认值允许建立远程服务器连接。
为使远程服务器能够工作,必须在本地和远程计算机上将控制远程服务器登录的 remote access 配置选项设为 1(默认设置)。如果更改了其中一台服务器的 remote access 选项设置,必须将一台或两台服务器的选项重新设回 1 才能允许远程访问。这可通过 SQL Server 企业管理器或 Transact-SQL sp_configure 语句完成。
可以在本地服务器上禁用远程服务器配置,以防止用户访问该服务器。
如何设置远程服务器以便允许使用远程存储过程 (Transact-SQL)
在第一台运行 Microsoft® SQL Server™ 的服务器上运行下列代码:
EXEC sp_addlinkedserver ServerName1, N'SQL Server'
EXEC sp_addlinkedserver ServerName2
EXEC sp_configure 'remote access', 1
RECONFIGURE
GO
停止并重新启动第一台 SQL Server。
在第二台 SQL Server 上运行下列代码。确保使用 SQL Server 身份验证登录。
-- The example shows how to set up access for a login 'sa'
-- from ServerName1 on ServerName2.
EXEC sp_addlinkedserver ServerName2, local
EXEC sp_addlinkedserver ServerName1
EXEC sp_configure 'remote access', 1
RECONFIGURE
GO
-- Assumes that the login 'sa' in ServerName2 and ServerName1
-- have the same password.
EXEC sp_addremotelogin ServerName1, sa, sa
GO
停止并重新启动第二台 SQL Server。
使用 sa 登录,现在就可以在第一台 SQL Server 上执行第二台 SQL Server 上的存储过程。
检查和设置远程服务器配置选项
如何检查和设置远程服务器配置选项(企业管理器)
1、展开一个服务器组,然后右击一个服务器。
2、单击"属性",然后单击"连接"选项卡。
3、在"远程服务器连接"下,复查并在合适时更改下列配置选项的值:
允许其它 SQL Server 使用 RPC 远程连接到本 SQL Server。
查询超时设定(秒,0 = 无限制)
此选项指定从处理查询返回之前等待的秒数。0 值允许无限的等待。默认值为 0。
强制分布式事务处理 (MTS)。
更改配置选项需要停止并重新启动服务器。如果更改了配置选项,则继续步骤 4,否则跳到步骤 6。
4、右击该服务器,然后单击"停止"按钮。
5、停止服务器之后,右击该服务器,然后单击"启动"按钮。
6、为远程服务器对的另一台服务器重复步骤 1 到 5。
禁用远程服务器设置
如何禁用远程服务器设置(企业管理器)
展开服务器组,然后展开服务器。
展开"安全性",单击"远程服务器"以列出在所选服务器上定义的远程服务器。
右击要禁用的远程服务器,然后单击"删除"按钮。
如何禁用远程服务器设置 (Transact-SQL)
在第二台运行 Microsoft® SQL Server™ 的服务器上运行下列代码:
EXEC sp_remoteoption ServerName1,sa, sa, trusted, false
EXEC sp_dropremotelogin ServerName1, sa, sa
RECONFIGURE
GO
EXEC sp_configure 'remote access', 0
EXEC sp_dropserver ServerName1
EXEC sp_dropserver ServerName2
RECONFIGURE
GO
停止并重新启动第二台 SQL Server。
在第一台 SQL Server 上运行下列代码:
EXEC sp_configure 'remote access', 0
EXEC sp_dropserver ServerName2
EXEC sp_dropserver ServerName1
RECONFIGURE
GO
停止并重新启动第一台 SQL Server。