• 创建链接服务器


    开启组件

    首先开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:

    exec sp_configure 'show advanced options',1
    reconfigure
    exec sp_configure 'Ad Hoc Distributed Queries',1
    reconfigure
    

    开启组件的原因语法中会说到。

    语法

    openrowset()方法是连接其他服务器数据库的命令。
    语法:openrowset(‘SQLOLEDB’,‘ip,端口’;‘username’;‘password’,‘sql语句或者表’)。
    两个示例:

    1.select * from openrowset('SQLOLEDB','127.0.0.1,8080';'sa';'12345678',
    [Database].[dbo].table) ;  
    //  直接连接表可以不用带引号
    
    2.select * from openrowset('SQLOLEDB','127.0.0.1,8080';'sa';'12345678',
    'select id , name from [Database].[dbo].table') ;
    //如果是sql语句需要带引号 
    

    注意:如果不开启组件,会报下面这个错误。
    在这里插入图片描述

    添加链接

    如果感觉每次都是用openrowset()方法太麻烦了,可以添加一个链接服务器。

    EXEC sp_addlinkedserver
    @server='iptest',		--服务器别名(可以用ip,也可以自己设置,只是个名称)
    @srvproduct=' ',   		--链接服务器的OLEDB数据源的产品名称,对象是sqlserver可以不指定
    @provider='SQLOLEDB',  --提供程序与数据源交互的动态链接库,是个连接对象,无需更改
    @datasrc='101.1.101.101'  --被访问的服务器的ip 
    

    添加用户登录链接。

    EXEC sp_addlinkedsrvlogin 
    'iptest',  --与上面的服务器别名保持一致
    'false',    -- 不用管
    NULL,    --不用管
    'administrator', --被访问的服务器帐号 
    'password' --被访问的服务器密码
    

    此时执行:
    select * from [iptest].[Database].[dbo].[table]

    select * from openrowset(‘SQLOLEDB’,‘127.0.0.1,8080’;‘sa’;‘12345678’,
    [Database].[dbo].table) ;

    效果是一样的。
    建议:如果确定数据库名和表名没有重复的或者以关键字命名的,中括号可以去掉。

    关闭组件

    注意:如果不需要链接需要关闭组件,因为开启会有安全隐患,避免别人攻击。

    exec sp_configure 'Ad Hoc Distributed Queries',0
    reconfigure
    exec sp_configure 'show advanced options',0
    reconfigure
    

    如果链接不再使用,可以删除已经存在的某个链接。

    Exec sp_droplinkedsrvlogin  服务器别名,Null
    Exec sp_dropserver 服务器别名
    
     
  • 相关阅读:
    安装node.js webkit环境[一]
    wpf 窗口最小化后,触发某事件弹出最小化窗口并置顶
    c# 旋转图片 无GDI+一般性错误
    类库里面添加日志记录 log4net
    string转xml
    DES c#加密后java解密
    使用排序字典排序
    怎么让一段xml被识别为字符串
    新装iis 页面503错误 DefaultAppPool停止解决方案
    hession
  • 原文地址:https://www.cnblogs.com/net5x/p/16448865.html
Copyright © 2020-2023  润新知