远程服务器配置允许客户端连接到一个 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。
建立远程服务器的安全性
设置对远程服务器执行远程存储过程调用 (RPC) 的安全性时,涉及的工作包括在远程服务器中建立登录映射,可能还包括在运行 Microsoft® SQL Server™ 实例的本地服务器中建立登录映射。
说明 支持远程服务器只是为了向后兼容。新的应用程序如果必须对 SQL Server 的远程实例执行存储过程,应该使用链接服务器。
设置远程服务器
必须在远程服务器上设置远程登录映射。使用这些映射,远程服务器将来自特定服务器的 RPC 连接的外来登录映射到本地登录。可以使用 sp_addremotelogin 存储过程在远程服务器上设置远程登录映射。
设置本地服务器
在 SQL Server 2000 内,通过以下方法为 Windows 身份验证创建的远程服务器登录创建远程服务器连接:
可在本地服务器上设置本地登录映射,定义 SQL Server 实例与远程服务器建立 RPC 连接时所使用的登录和密码。
对于 Windows 身份验证所创建的登录,必须创建到登录名和密码的映射。此登录名和密码必须与远程服务器所需的外来登录和密码相匹配。
使用 sp_addlinkedsrvlogin 存储过程创建本地登录映射。
说明 对于 SQL Server 身份验证所创建的登录,不必为了对远程服务器执行存储过程而创建任何本地登录映射。
远程服务器安全性示例
假设有两个 SQL Server 安装:serverSend 和 serverReceive。serverReceive 配置为将来自 serverSend 的名为 Sales_Mary 的外来登录映射到 serverReceive 中名为 Alice 的 SQL Server 授权登录。另一个将来自 serverSend 的名为 Joe 的外来登录映射到 serverReceive 中名为 Joe 的 SQL Server 授权登录。
可以执行下面的 Transact-SQL 代码,以配置 serverSend 对 serverReceive 执行 RPC:
--Create remote server entry for RPCs from serverSend.
EXEC sp_addserver 'serverSend'
GO
--Create remote login mapping for login 'Sales_Mary' from serverSend
--to Alice.
EXEC sp_addremotelogin 'serverSend', 'Alice', 'Sales_Mary'
GO
--Set trusted option on for this mapping to disable password checking
--for Sales_Mary from serverSend.
EXEC sp_remoteoption 'serverSend', 'Alice', 'Sales_Mary', trusted, true
GO
--Create remote login mapping for login Joe from serverReceive to same login;
--assumes same password for Joe in both servers.
EXEC sp_addremotelogin 'serverSend', 'Joe', 'Joe'
GO
在 serverSend 上创建本地登录映射,将 Windows 授权登录 Sales\Mary 映射到登录 Sales_Mary。Joe 不需要本地映射,因为默认设置是使用相同的登录名和密码,并且 serverReceive 中有 Joe 的映射:
--Create a remote server entry for RPCs from serverReceive.
EXEC sp_addserver 'serverReceive'
GO
--Create a local login mapping for the Windows Authenticated login.
--Sales\Mary to Sales_Mary.
EXEC sp_addlinkedsrvlogin 'serverReceive', false, 'Sales\Mary',
'Sales_Mary,' NULL
GO
查看本地或远程服务器属性
可以在某个方便的位置查看本地或远程服务器的服务器特性(如 Microsoft® SQL Server™ 的版本号、计算机中处理器的数目及类型、操作系统的版本等)。从本地服务器可以查看远程服务器的数据库、文件、登录和工具。
如何查看服务器属性(企业管理器)
展开一个服务器组,然后右击一个服务器。
单击"属性"。
Transact-SQL
xp_msver
返回并允许要查询的 Microsoft® SQL Server™ 版本信息。除了有关服务器实际内部版本号码的版本信息外,还返回多种环境信息。该信息可以在 Transact-SQL 语句、批处理、存储过程等环境中使用,以增强与平台无关代码
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073