适用于:SQL Server
在 SQL Server 中支持远程服务器只是为了向后兼容。 新应用程序应该改用链接服务器。 有关详细信息,请参阅链接服务器(数据库引擎)。
远程服务器配置使客户端能够连接到一个 SQL Server 实例,以便在没有建立单独的连接的情况下在其他 SQL Server 实例上执行存储过程。 此时,客户端所连接的服务器接受客户端的请求,并代表客户端将该请求发送到远程服务器。 远程服务器处理请求,并将所有结果返回到原始的服务器。 服务器再将那些结果传递给客户端。 当设置远程服务器配置时,还应考虑如何建立安全性。
如果要设置服务器配置以在另一台服务器上执行存储过程,并且没有现有的远程服务器配置,请使用链接服务器而不是远程服务器。 您可以对链接服务器执行存储过程和分布式查询;但对远程服务器只能执行存储过程。
远程服务器详细信息
远程服务器是成对设置的。 若要设置一对远程服务器,请将这两台服务器配置为彼此将对方识别为远程服务器。
在大多数情况下,你不必为远程服务器设置配置选项。 SQL Server 组将在本地计算机和远程计算机上设置默认值以允许远程服务器连接。
若要使远程服务器访问正常工作, remote access 必须在本地和远程计算机上将配置选项设置为 1 。 (这是默认设置。 remote access 控制来自远程服务器的登录名。 可以使用 Transact-SQL sp_configure 存储过程或 SQL Server Management Studio 重置此配置选项。 若要在 SQL Server Management Studio中设置选项,请在 “服务器属性连接” 页上,使用 “允许远程连接到此服务器” 。 若要访问 “服务器属性连接 ”页,请在对象资源管理器中右键单击服务器名称,然后选择“ 属性”。 在 “服务器属性 ”页上,选择“ 连接” 页。
从本地服务器中,可以禁用远程服务器配置,以防止与远程服务器配对的用户访问该本地服务器。
远程服务器的安全性
若要为远程服务器启用远程过程调用 (RPC),必须在远程服务器中设置登录映射,并尽可能在运行有 SQL Server实例的本地服务器中设置登录映射。 默认情况下, SQL Server中禁用 RPC。 此配置通过减少服务器的可攻击外围应用来增强其安全性。 使用 RPC 前必须启用此功能。 有关详细信息 ,请参阅sp_configure。
设置远程服务器
必须在远程服务器上设置远程登录映射。 使用这些映射,远程服务器可将某个特定服务器为建立 RPC 连接而传入的登录帐户映射到本地登录帐户。 可以使用远程服务器上的存储过程设置 sp_addremotelogin 远程登录映射。
注意
SQL Server 不支持 受信任的 选项 sp_remoteoption 。
设置本地服务器
对于经过 SQL Server 身份验证的本地登录名,无需在本地服务器上设置登录映射。 SQL Server 使用本地登录名和密码连接到远程服务器。 对于经过 Windows 身份验证的登录帐户,可以在定义 SQL Server 实例与远程服务器建立 RPC 连接时使用的登录名和密码的本地服务器上设置本地登录映射。
对于 Windows 身份验证创建的登录名,必须使用存储过程创建到登录名和密码的 sp_addlinkedservlogin 映射。 此登录名和密码必须与远程服务器预期的传入登录名和密码匹配,由远程 sp_addremotelogin服务器创建。
注意
请尽可能使用 Windows 身份验证。
远程服务器安全示例
请考虑以下 SQL Server 安装: serverSend 和 serverReceive。 serverSend(称为)Joe映射到名为Joe 的 SQL Server 身份验证登录名serverReceive。
下面的 Transact-SQL 代码示例将 serverSend 配置为对 serverReceive 执行 RPC。
--Create remote server entry for RPCs
--from serverSend in serverReceive.
EXECUTE sp_addserver 'serverSend';
GO
--Create remote login mapping for login 'Sales_Mary' from serverSend
--to Alice.
EXECUTE sp_addremotelogin 'serverSend', 'Alice', 'Sales_Mary';
GO
--Create remote login mapping for login Joe from serverReceive
--to same login.
--Assumes same password for Joe in both servers.
EXECUTE sp_addremotelogin 'serverSend', 'Joe', 'Joe';
GO
在 serverSend上创建本地登录映射,以便将经过 Windows 身份验证的登录帐户 Sales\Mary 映射到登录帐户 Sales_Mary。
Joe不需要本地映射,因为默认设置使用相同的登录名和密码,并且 serverReceive 中有 Joe的映射。
--Create a remote server entry for RPCs from serverReceive.
EXECUTE sp_addserver 'serverReceive';
GO
--Create a local login mapping for the Windows authenticated login.
--Sales\Mary to Sales_Mary. The password should match the
--password for the login Sales_Mary in serverReceive.
EXECUTE sp_addlinkedsrvlogin 'serverReceive', false, 'Sales\Mary', 'Sales_Mary', '<password>';
GO
查看本地或远程服务器属性
可以使用 xp_msver 扩展存储过程来查看本地或远程服务器的服务器属性。 这些属性包括 SQL Server的版本号、计算机中的处理器类型和数目以及操作系统的版本。 从本地服务器可以查看远程服务器的数据库、文件、登录和工具。 有关详细信息,请参阅 xp_msver。