使用适用于 .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.