代码之家  ›  专栏  ›  技术社区  ›  devXen

Oracle链接服务器错误:ORA-12640:身份验证适配器初始化失败

  •  1
  • devXen  · 技术社区  · 14 年前

    我在SQL Server上有一个链接服务器与Oracle对话。使用OpenQuery执行以下SQL语句

     SELECT * FROM OPENQUERY(finance, 'select * from KFRI.VW_XREF_PROJECTS')
    

    将得到如下错误:

    OLE DB provider "OraOLEDB.Oracle" for linked server "finance" returned message "ORA-12640: Authentication adapter initialization failed".
    Msg 7303, Level 16, State 1, Line 1
    Cannot initialize the data source object of OLE DB provider "OraOLEDB.Oracle" for linked server "finance".
    

    我试着设置:

    SQLNET.AUTHENTICATION_SERVICES= (NONE)
    

    在$oracle_home \network\admin\sqlnet.ora中。这没有帮助。

    有趣的是,我的同事能够在他的机器上顺利地执行完全相同的查询。

    关于如何解决这个问题的任何建议都非常感谢!!

    3 回复  |  直到 14 年前
        1
  •  1
  •   Nathan DeWitt    14 年前

    只是澄清一下——你们都在连接到同一个SQL Server框,这个框有一个链接到Oracle的服务器,并且执行了他的查询,而你们的查询没有,对吗?我想排除Oracle驱动程序和配置问题。

    如果您都要登录到SQL Server来运行查询,那么您需要了解如何将链接服务器设置为处理身份验证。它是通过您的凭据传递的(确保您对Oracle框具有权限),还是使用一组Oracle凭据?如果它使用的是Oracle凭据,那么我不知道发生了什么。

    如果您和您的同事在各自的本地计算机上都安装了SQL Server,并且都创建了链接服务器,那么您应该检查Oracle驱动程序,然后检查您对Oracle的权限,并确保您拥有相同的.ora文件。

        2
  •  1
  •   Waleed Al-Balooshi    14 年前

    除了已经说过的内容之外,还可以查看网络日志$ORACLE U HOME \网络\日志,查看是否列出了任何其他信息。还可以通过将以下行添加到sqlnet.ora来启用sqlnet跟踪

    trace_level_client=16 
    trace_file_client=cli 
    trace_directory_client=c:\temp 
    trace_unique_client=true 
    trace_timestamp_client=ON 
    

    另外,尝试评论我们的sqlnet.authentication\u services=(none),看看这是否有帮助。检查以确保您使用的ODAC版本与服务器上的版本匹配。检查Oracle环境变量,确保一切都在那里并且正确无误。

    以上是来自

    http://www.dbforums.com/oracle/1615519-enough-ora-12640-please-help.html http://p2p.wrox.com/archives/oracle/2002-07/35.php

        3
  •  0
  •   Steve Dignan    14 年前

    而不是修改 sqlnet.ora数据库 文件,试着用你的同事重写它 sqlnet.ora数据库 文件(保留自己的备份以备万一)。供参考(但已在您的问题中注明),文件可在此处找到…

    $oracle_home \network\admin\sqlnet.ora