2010-04-09 69 views
0

使用Oracle Data Provider for .NET,我的应用程序使用特权SYS用户连接到数据库。连接字符串如下:以SYS用户身份登录到.NET中的Oracle 11g

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

这正常工作与甲骨文10,但甲骨文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一起使用。

回答

-1

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

+0

该连接字符串适用于“Microsoft ODBC for Oracle”,我正在使用“Oracle Data Provider for .NET”。 – 2010-04-12 07:35:53

0

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

+0

不,这不是问题!连接字符串用简单的连接放在一起;我检查了我的代码中没有任何案例变更,并且凭证本身在其他应用程序(不基于.NET)中工作。 – 2010-04-12 07:34:49

相关问题