zoukankan      html  css  js  c++  java
  • sqlserver 存储过程跨库查询

    实践环境:SQL SERVER 2008R2

    一般跨库查询: select  * from [远程IP].库名.dbo.表名/存储过程

    正常存储过程如果在数据库管理器的链接服务器地址中添加了远程IP,是没问题的,但是如果创建作业定时执行任务就报如下错误:

    已以用户 NT AUTHORITYNETWORK SERVICE 的身份执行。 链接服务器 "远程IP" 的 OLE DB 访问接口 "SQLNCLI10" 报错。身份验证失败。 [SQLSTATE 42000] (错误 7399)  无法初始化链接服务器 "远程IP" 的 OLE DB 访问接口 "SQLNCLI10" 的数据源对象。 [SQLSTATE 42000] (错误 7303)  链接服务器"远程IP"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "无效的授权说明"。 [SQLSTATE 01000] (错误 7412).  该步骤失败。

    针对此报错可以使用下面跨库查询方法:

    select  * from OPENDATASOURCE('SQLOLEDB','Data Source=远程IP;User ID=sa;Password=sasa').库名.dbo.表名/存储过程

    注意:

    有的服务器因为安全问题可能会关闭一些组件,会报如下错误:

    已以用户 NT AUTHORITYNETWORK SERVICE 的身份执行。 SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。 [SQLSTATE 42000] (错误 15281).  该步骤失败。

    针对此报错开启Ad Hoc Distributed Queries组件即可,执行如下sql:

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

    关闭Ad Hoc Distributed Queries组件的sql如下:

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

  • 相关阅读:
    mysql 在orderby和limit混合使用时重复数据问题
    springboot启动类 注解
    redis RDB和AOF两种持久化的区别
    C#解析逻辑字符串【x>y&&a>b||p=r】
    删除例如联想笔记本系统隐藏分区
    通过贝叶斯算法实现自动识别类别
    将可执行exe文件注册成windows服务
    Windows10中的IIS10安装php manager和IIS URL Rewrite 2.0组件的方法
    添加钩子监听全局鼠标或键盘事件
    C# DateTime.Now和DateTime.UtcNow的区别
  • 原文地址:https://www.cnblogs.com/Zbuxu/p/11865113.html
Copyright © 2011-2022 走看看