在第二台 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。
在第二台运行 Microsoft® SQL Server™ 的服务器上运行下列代码: EXEC sp_remoteoption ServerName1,sa, sa, trusted, false EXEC sp_dropremotelogin ServerName1, sa, sa RECONFIGURE GO
设置本地服务器 在 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 授权登录。
--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 授权登录 SalesMary 映射到登录 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. --SalesMary to Sales_Mary. EXEC sp_addlinkedsrvlogin 'serverReceive', false, 'SalesMary', 'Sales_Mary,' NULL GO