SQLServer之建立连接服务器

建立连接服务器注意事项

当咱们要跨本地数据库,访问另一个数据库表中的数据时,本地数据库中就必需要建立远程数据库的DBLINK,经过DBLINNK数据库能够像访问本地数据库同样访问远程数据库表中的数据。数据库

连接服务器容许访问针对OLE DB数据源的分布式异构查询。建立连接服务器后,能够针对此服务器运行分布式查询,而且查询能够链接来自多个数据源的表。若是连接服务器被定义为SQL Server的实例,则能够执行远程存储过程。安全

连接服务器的功能和必需参数可能会有很大差别。bash

使用SSMS数据库管理工具建立DBLINK

一、链接服务器-》展开服务器-》展开服务器对象-》展开连接服务器-》右键点击连接服务器-》点击新建连接服务器。服务器

二、在新建连接服务器弹出框-》点击常规-》输入连接服务器名称-》选择服务器类型。网络

三、在新建连接服务器窗口-》点击安全性-》选择连接服务器的登录类型-》添加或者删除登录远程服务器的映射。架构

四、在新建链接服务器弹出框-》点击服务器选项-》选择服务器选项的属性。分布式

五、在新建连接服务器弹窗框-》点击肯定-》在对象资源管理器查看结果。工具

使用SSMS数据库管理工具建立DBLINK

语法

--声明数据库引用
use master;
go
 
--建立DbLink语法
--第一步:定义DBLINK类型
exec master.dbo.sp_addlinkedserver @server='连接服务器名称',@srvproduct='SQL Server';
go

--第二步:定义DBLINK链接属性
--第一种安全性:不创建链接(删除下边的登录)
--第二种安全性:不使用安全上下文创建链接
--exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'连接服务器名称', @locallogin = NULL , @useself = N'False'
--go
--第三种安全性:使用登陆名的当前安全上下文创建链接
--exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'连接服务器名称', @locallogin = NULL , @useself = N'True'
--go
--第四种安全性:使用此安全上下文创建链接
--exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname='连接服务器名称',@locallogin=NULL,@useself='False',@rmtuser='登陆名',@rmtpassword='密码';
--go

--排序规则兼容
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'collation compatible', @optvalue=N'true' | N'false'
go
--数据访问
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'data access', @optvalue=N'true' | N'false'
go
--订阅服务器
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'dist', @optvalue=N'true' | N'false'
go
--发布服务器
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'pub', @optvalue=N'true' | N'false'
go
--RPC
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'rpc', @optvalue=N'true' | N'false'
go
--RPC 超时
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'rpc out', @optvalue=N'true' | N'false'
go
--分发服务器
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'sub', @optvalue=N'true' | N'false'
go
--链接超时值
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'connect timeout', @optvalue=N'0'
go
--排序规则名称
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'collation name', @optvalue=null
go
--惰性架构验证
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'lazy schema validation', @optvalue=N'true' | N'false'
go
--查询超时值
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'query timeout', @optvalue=N'0'
go
--使用远程排序规则
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'use remote collation', @optvalue=N'true' | N'false'
go
--为RPC启用针对分布式事务的升级
exec master.dbo.sp_serveroption @server=N'连接服务器名称', @optname=N'remote proc transaction promotion', @optvalue=N'true' | N'false'
go
复制代码

语法解析

第一步和第二步必须同时执行,后面DBLINK属性能够不写使用系统默认。ui

示例:以我本身本机为例

--声明数据库引用
use master;
go
 
--建立DbLink语法
--第一步:定义DBLINK类型
exec master.dbo.sp_addlinkedserver @server='TANG\SQLEXPRESS',@srvproduct='SQL Server';
go
 
----排序规则兼容
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'collation compatible', @optvalue=N'false'
--go
----数据访问
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'data access', @optvalue=N'true'
--go
----订阅服务器
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'dist', @optvalue=N'false'
--go
----发布服务器
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'pub', @optvalue=N'false'
--go
----RPC
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'rpc', @optvalue=N'false'
--go
----RPC 超时
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'rpc out', @optvalue=N'false'
--go
----分发服务器
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'sub', @optvalue=N'false'
--go
----链接超时值
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'connect timeout', @optvalue=N'0'
--go
----排序规则名称
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'collation name', @optvalue=null
--go
----惰性架构验证
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'lazy schema validation', @optvalue=N'false'
--go
----查询超时值
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'query timeout', @optvalue=N'0'
--go
----使用远程排序规则
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'use remote collation', @optvalue=N'true'
--go
----为RPC启用针对分布式事务的升级
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'remote proc transaction promotion', @optvalue=N'true'
--go
 
--第二步:定义DBLINK链接属性
--第一种安全性:不创建链接(删除下边的登录)
--第二种安全性:不使用安全上下文创建链接
--exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TANG\SQLEXPRESS', @locallogin = NULL , @useself = N'False'
--go
--第三种安全性:使用登陆名的当前安全上下文创建链接
exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TANG\SQLEXPRESS', @locallogin = NULL , @useself = N'True'
go
--第四种安全性:使用此安全上下文创建链接
--exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname='TANG\SQLEXPRESS',@locallogin=NULL,@useself='False',@rmtuser='tests',@rmtpassword='1234';
--go
复制代码

示例结果:显示建立结果

DBLINK使用

示例

SELECT * FROM   [testss].[dbo].[test1]     AS A
INNER JOIN  [TANG\SQLEXPRESS].[testss].[dbo].[test3] AS B ON A.classid=B.id
复制代码

结果

DBLINK连接优缺点

优势

一、容许跨服务器访问。spa

二、数据量少的状况下用dblink比较简单,迅速。

三、能够执行远程存储过程等。

缺点

一、远程查询时易受网络等影响。

二、连接稳定性较差。

三、大量消耗数据库资源。

四、可扩展性较差。

五、维护性差、安全性较低。

相关文章
相关标签/搜索