【问题标题】:Can't connect to Oracle using Windows Authentication with ODP.NET无法使用带有 ODP.NET 的 Windows 身份验证连接到 Oracle
【发布时间】:2011-10-20 21:18:15
【问题描述】:

我已经为我的 Oracle 数据库配置了 NTS 身份验证并将我的 Windows 登录设置为数据库中的用户。

我可以使用命令sqlplus / 登录到数据库。

我还能够使用 ADO.NET 的 System.Data.OracleClient 提供程序使用 Windows 身份验证进行连接。

例如,以下代码 sn -p 起作用:

DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OracleClient");
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = "Data Source=//localhost/Test; Integrated Security=yes";
connection.Open();

但是,我无法通过使用 Oracle.DataAccess.Client (ODP.NET) 的 Windows 身份验证进行连接。

DbProviderFactory factory = DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = "Data Source=//localhost/Test; User Id=/";
connection.Open();

此代码块导致以下异常:

Oracle.DataAccess.Client.OracleException 未处理 消息=ORA-1017:用户名/密码无效;登录被拒绝

根据此链接,我应该能够使用提供的连接字符串创建到 Oracle 的 ODP.NET 连接:http://www.oracle.com/technetwork/articles/dotnet/cook-masteringdotnet-090821.html

为什么 ODP.NET 客户端不允许我连接,而(已弃用的)Microsoft 客户端允许?

这个问题在 2007 年的以下帖子中讨论过,但没有提供每个解决方案:http://forums.oracle.com/forums/thread.jspa?messageID=2312148

这是一场精彩的表演。

【问题讨论】:

    标签: c# oracle ado.net database-connection odp.net


    【解决方案1】:

    使用 ODP.net 11 和此连接字符串(在 Oracle 客户端中使用 tnsnames.ora 文件来定义 DLGP)对我来说效果很好:Data Source=DLGP;User Id=/;Password=;

    您的 sqnet.ora 文件需要正确设置才能正常工作,但如果 SQLPlus 可以连接,情况应该已经如此。您只有一个 Oracle 主页吗?如果 ODP.net 选择了第二个,可以很好地解决问题(这可能取决于您的安装方式)。

    【讨论】:

    • 你是对的,ODP 客户端安装在它自己的 Oracle Home 中,它没有包含所有重要 SQLNET.AUTHENTICATION_SERVICES = (NTS) 行的必要 sqlnet.ora(我使用 ezconnect 而不是 tnsnames .ora)。我现在使用在bit.ly/mUxVhh 找到的xcopy 部署hack 并将sqlnet.ora 放在与dll 相同的目录中,似乎工作得很好!谢谢,我现在要接受这个答案。
    • 或者,您可以在 application.config 文件(或 machine.config)中添加 SQLNET.AUTHENTICATION_SERVICES 条目:(docs.oracle.com/cd/E47955_01/win.121/e41125/…)
    猜你喜欢
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2016-11-04
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 2017-08-07
    相关资源
    最近更新 更多