(3.15)跨服务器/实例访问数据库

Posted 郭大侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(3.15)跨服务器/实例访问数据库相关的知识,希望对你有一定的参考价值。

1.链接数据库

exec sp_addlinkedserver ‘csj‘,‘‘,‘SQLOLEDB‘,‘pc‘  -- 把【数据库地址pc】与连接名称【csj】绑定
exec sp_addlinkedsrvlogin ‘csj‘,‘false‘,null,‘sa‘,‘123456‘   -- 把【用户名sa】和【密码123456】与连接名称【csj】绑定
go 
-- 建立完成之后就可以正常使用了 
select * from csj.bds0040263_db.dbo.Sys_User   --连接名称.数据库名称.dbo.表名称 这是一个完整的sql语句

 exec sp_dropserver ‘csj‘,‘droplogins‘    -- 操作完后,删除【csj】连接名称

 

 

[sql] view plain copy
 
    1.    
    2. exec sp_addlinkedserver ‘csj‘,‘‘,‘SQLOLEDB‘,‘pc‘  -- 把【数据库地址pc】与连接名称【csj】绑定  
    3. exec sp_addlinkedsrvlogin ‘csj‘,‘false‘,null,‘sa‘,‘123456‘   -- 把【用户名sa】和【密码123456】与连接名称【csj】绑定  
    4. go   
    5. -- 建立完成之后就可以正常使用了   
    6. select * from csj.bds0040263_db.dbo.Sys_User   --连接名称.数据库名称.dbo.表名称 这是一个完整的sql语句   
    7.   
    8.  exec sp_dropserver ‘csj‘,‘droplogins‘    -- 操作完后,删除【csj】连接名称 

 

 

2.OPENROWSET函数

需要先在主服务器上更改一个设置,右击主服务器——方面

技术分享图片

需要把AdHocRemoteQueriesEnabled属性改为True,默认是false的

技术分享图片

--------***此外也可以通过语句来完成上面的操作

 

[sql] view plain copy
 
  1. use master;  
  2. GO  
  3. exec sp_configure ‘show advanced option‘,‘1‘;  
  4. reconfigure  
  5. exec sp_configure ‘Ad Hoc Distributed Queries‘,‘1‘;  
  6. reconfigure  

如果想关闭远程则可以把‘1’改成‘0’   *****------------

 

然后就可以通过语句直接访问目标服务器中的数据库了
测试一下:
[sql] view plain copy
 
  1. select * from  
  2.     openrowset(‘SQLNCLI‘,  
  3.            ‘Server=127.0.0.1,8888;UID=用户名;PWD=密码;‘,  
  4.                ‘select * from 表名‘)  
 
另外OPENROWSET 是一次性的访问,对于经常性要链接的服务器可以直接添加链接服务器




以上是关于(3.15)跨服务器/实例访问数据库的主要内容,如果未能解决你的问题,请参考以下文章

SqlServer如何跨实例访问数据库

jsonp实现跨域

SpringCloudMySQL跨实例访问

求助:wcf服务跨网段访问

设置IE浏览器跨域访问数据

SQL Server跨库跨服务器访问实现