0

使用适用于 .NET 的 Oracle 数据提供程序,我的应用程序使用特权 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.

4

2 回答 2

0

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

于 2010-04-09T12:55:48.177 回答
-1

根据这个线程 ,您必须添加as sysdba到您的连接字符串。

于 2010-04-09T12:42:34.140 回答