SQLserver如何创建链接服务器,实现跨库连接
一、背景
- 两台服务器处于同一局域网下或者一个路由器下
- 要进行链接的服务器均为SQLserver
二、注意事项
(1)确保Sql Server已启用远程连接
- 登录需要被链接服务器的计算机上
- 打开SQL Server Management Studio (SSMS)
- 使用Windows身份验证或者使用SQLserver身份验证进行登录
- 找到对应的数据库服务,单击右键–>找到属性—>选择“连接”—找到对应“是否开启远程权限” 选中
(2)如果需要使用TCP/IP 协议进行连接,则确保“启用TCP/IP” 协议被选中
- 登录需要被链接服务器的计算机上
- 找到SQLserver配置管理器—>打开
- 找到SQLserver网络配置—>MSSQLSERVER协议---->TCP/IP---->启用
(3)配置防火墙
-
如果你的 SQL Server 托管在防火墙后面的计算机上,确保打开了用于 SQL Server 的端口(默认情况下是1433)。
-
还要确保 SQL Server 浏览器服务正在运行,它负责帮助客户端定位 SQL Server 实例。
-
转到 SQL Server 所在的计算机的防火墙设置。
-
创建一个入站规则,允许传入的连接到 SQL Server 的端口(默认是 1433)。
(4)修改配置之后建议重启SQL server服务
-
打开 SQL Server Configuration Manager。
-
在左侧面板中选择 “SQL Server Services”。
-
在右侧窗口中,右键单击 SQL Server 实例,选择 “重启”。
(5)测试远程连接,服务器是否正常
-
在远程计算机上使用 SQL Server Management Studio(SSMS)或其他 SQL 客户端工具连接到 SQL Server 实例。
-
在连接对话框中,指定 SQL Server 的 IP 地址或主机名,以及凭据(Windows 身份验证或 SQL Server 身份验证)。
-
如果一切设置正确,你应该能够成功连接到 SQL Server。
二、图文教程&配置相关
-
检查被链接的服务器是否开启远程权限,进入SQLSERVER管理器找到被链接服务器---->右键属性
-
连接—>允许远程到此服务器
-
确保TCP/IP协议被启用:桌面—>开始—>SQLSERVER 配置管理器
-
找到SQL server网络配置—>MSSQLSERVER协议—>TCP/IP 协议---->选择启用
-
进入Windows防火墙—>高级设置
-
选择“入站规则”
-
确保已经开放1433(默认1433,根据自己的情况来)端口(如果不知道怎么开放端口,请手动百度搜索:windows防火墙如何创建端口入站规则)
-
返回 SQL Server Management Studio (SSMS)—>选择重新启动
三、在需要链接其他服务器的数据库中---->SQL语句创建链接服务器
- 在当前数据库(假设为follow_up)中创建一个链接服务器的连接
EXEC sp_addlinkedserver
@server = 'CloudantDBServer', -- 连接服务器的名称(自定义)
@srvproduct = '', -- 产品名称,可以为空
@provider = 'MSDASQL', -- 提供程序,通常使用 SQL Native Client
@datasrc = 'CloudantDB_v3'; -- 本机数据库的数据源名称(数据库名)`
- 创建登录映射
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'CloudantDBServer', -- 引用要链接的服务器名称,同上,名称需要一样
@useself = 'false',
@locallogin = null, -- 本地 SQL Server 登录用户名
@rmtuser = 'CloudantDB_username', -- 被链接数据库的用户名
@rmtpassword = 'CloudantDB_password'; -- 被链接数据库的密码
-
查询被链接的数据库_表
SELECT * FROM CloudantDBServer.BNNursingDocsSystem_Develop.dbo.V_CLEAN_DELIVERY_RECORD; -- CloudantDBServer 引用要链接的服务器名称 -- BNNursingDocsSystem_Develop 被链接的数据库名 -- dbo.V_CLEAN_DELIVERY_RECORD; 视图名称/表名称