从.NET登录为SYS用户到Oracle 11g

时间:2010-04-09 12:36:57

标签: .net oracle oracle11g connect sysdba

使用Oracle Data Provider for .NET,我的应用程序使用特权SYS用户连接到数据库。连接字符串如下:

Data Source=MyTnsName;User ID=sys;Password=MySysPassword;DBA Privilege=SYSDBA

这适用于Oracle 10,但Oracle 11一直抱怨用户名或密码无效。我确认密码是正确的 - 其他应用程序可以使用相同的凭据正常工作。

请注意,对于普通用户(没有DBA Privilege部分),连接到Oracle 11可以很好地工作。

那么,出了什么问题?

  

更新
  区分大小写不是问题 - 在构造连接字符串时,我的代码不会更改密码大小写,并且密码可以与其他非.NET应用程序一起使用。

     

我怀疑这可能是由我用来连接11数据库的Oracle 10客户端引起的。 Oracle声明客户端是向上兼容的,唯一的缺点是您无法使用数据库的某些新功能。但是,SYSDBA连接显然不是新的Oracle 11功能,而且 - 再次 - 非.NET应用程序(Keeptool Hora)可以使用相同的设置进行连接。

     

还有其他想法吗?

 
  

更新2:
  使用Oracle 11客户端时问题仍然存在: - (

 
  

更新3:
  我用另一个数据库安装版本11.2(第一个是11.1)进行了测试 - 结果相同。

     

此外,值得注意的是,对于用户SYSTEM(也使用DBA Privilege部分),一切正常。但是,我 使用SYS

2 个答案:

答案 0 :(得分:0)

11g中改变的一件事是密码变得区分大小写。我不知道你是如何制作你的ConnectionString的,但它是否可以在错误的情况下获取(或放置)密码?

答案 1 :(得分:-1)

根据this thread,您必须将as sysdba添加到您的连接字符串。