经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
SQLServer之创建链接服务器
来源:cnblogs  作者:小子pk了  时间:2019/3/29 9:10:19  对本文有异议

创建链接服务器注意事项

当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的DBLINK,通过DBLINNK数据库可以像访问本地数据库一样访问远程数据库表中的数据。

链接服务器允许访问针对OLE DB数据源的分布式异构查询。创建链接服务器后,可以针对此服务器运行分布式查询,并且查询可以连接来自多个数据源的表。如果链接服务器被定义为SQL Server的实例,则可以执行远程存储过程。

链接服务器的功能和必需参数可能会有很大差异。

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

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

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

3、在新建链接服务器窗口-》点击安全性-》选择链接服务器的登陆类型-》添加或者删除登陆远程服务器的映射

4、在新建连接服务器弹出框-》点击服务器选项-》选择服务器选项的属性。

5、在新建链接服务器弹窗框-》点击确定-》在对象资源管理器查看结果。

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

语法

  1. --声明数据库引用
  2. use master;
  3. go
  4. --创建DbLink语法
  5. --第一步:定义DBLINK类型
  6. exec master.dbo.sp_addlinkedserver @server='链接服务器名称',@srvproduct='SQL Server';
  7. go
  1. --第二步:定义DBLINK连接属性
  2. --第一种安全性:不建立连接(删除下边的登陆)
  3. --第二种安全性:不使用安全上下文建立连接
  4. --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'链接服务器名称', @locallogin = NULL , @useself = N'False'
  5. --go
  6. --第三种安全性:使用登录名的当前安全上下文建立连接
  7. --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'链接服务器名称', @locallogin = NULL , @useself = N'True'
  8. --go
  9. --第四种安全性:使用此安全上下文建立连接
  10. --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname='链接服务器名称',@locallogin=NULL,@useself='False',@rmtuser='登录名',@rmtpassword='密码';
  11. --go
  1. --排序规则兼容
  2. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'collation compatible', @optvalue=N'true' | N'false'
  3. go
  4. --数据访问
  5. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'data access', @optvalue=N'true' | N'false'
  6. go
  7. --订阅服务器
  8. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'dist', @optvalue=N'true' | N'false'
  9. go
  10. --发布服务器
  11. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'pub', @optvalue=N'true' | N'false'
  12. go
  13. --RPC
  14. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'rpc', @optvalue=N'true' | N'false'
  15. go
  16. --RPC 超时
  17. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'rpc out', @optvalue=N'true' | N'false'
  18. go
  19. --分发服务器
  20. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'sub', @optvalue=N'true' | N'false'
  21. go
  22. --连接超时值
  23. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'connect timeout', @optvalue=N'0'
  24. go
  25. --排序规则名称
  26. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'collation name', @optvalue=null
  27. go
  28. --惰性架构验证
  29. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'lazy schema validation', @optvalue=N'true' | N'false'
  30. go
  31. --查询超时值
  32. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'query timeout', @optvalue=N'0'
  33. go
  34. --使用远程排序规则
  35. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'use remote collation', @optvalue=N'true' | N'false'
  36. go
  37. --为RPC启用针对分布式事务的升级
  38. exec master.dbo.sp_serveroption @server=N'链接服务器名称', @optname=N'remote proc transaction promotion', @optvalue=N'true' | N'false'
  39. go

语法解析

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

示例:以我自己本机为例

  1. --声明数据库引用
  2. use master;
  3. go
  4. --创建DbLink语法
  5. --第一步:定义DBLINK类型
  6. exec master.dbo.sp_addlinkedserver @server='TANG\SQLEXPRESS',@srvproduct='SQL Server';
  7. go
  8. ----排序规则兼容
  9. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'collation compatible', @optvalue=N'false'
  10. --go
  11. ----数据访问
  12. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'data access', @optvalue=N'true'
  13. --go
  14. ----订阅服务器
  15. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'dist', @optvalue=N'false'
  16. --go
  17. ----发布服务器
  18. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'pub', @optvalue=N'false'
  19. --go
  20. ----RPC
  21. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'rpc', @optvalue=N'false'
  22. --go
  23. ----RPC 超时
  24. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'rpc out', @optvalue=N'false'
  25. --go
  26. ----分发服务器
  27. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'sub', @optvalue=N'false'
  28. --go
  29. ----连接超时值
  30. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'connect timeout', @optvalue=N'0'
  31. --go
  32. ----排序规则名称
  33. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'collation name', @optvalue=null
  34. --go
  35. ----惰性架构验证
  36. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'lazy schema validation', @optvalue=N'false'
  37. --go
  38. ----查询超时值
  39. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'query timeout', @optvalue=N'0'
  40. --go
  41. ----使用远程排序规则
  42. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'use remote collation', @optvalue=N'true'
  43. --go
  44. ----为RPC启用针对分布式事务的升级
  45. --exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'remote proc transaction promotion', @optvalue=N'true'
  46. --go
  47. --第二步:定义DBLINK连接属性
  48. --第一种安全性:不建立连接(删除下边的登陆)
  49. --第二种安全性:不使用安全上下文建立连接
  50. --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TANG\SQLEXPRESS', @locallogin = NULL , @useself = N'False'
  51. --go
  52. --第三种安全性:使用登录名的当前安全上下文建立连接
  53. exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TANG\SQLEXPRESS', @locallogin = NULL , @useself = N'True'
  54. go
  55. --第四种安全性:使用此安全上下文建立连接
  56. --exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname='TANG\SQLEXPRESS',@locallogin=NULL,@useself='False',@rmtuser='tests',@rmtpassword='1234';
  57. --go

示例结果:显示创建结果

DBLINK使用

示例

  1. SELECT * FROM [testss].[dbo].[test1] AS A
  2. INNER JOIN [TANG\SQLEXPRESS].[testss].[dbo].[test3] AS B ON A.classid=B.id

结果

DBLINK链接优缺点

优点

1、允许跨服务器访问。

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

3、可以执行远程存储过程等。

缺点

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

2、链接稳定性较差。

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

4、可扩展性较差。

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

原文链接:http://www.cnblogs.com/vuenote/p/10611411.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号