编辑:如果我选中OS身份验证复选框(清空并禁用用户名+密码),则SQL开发人员无法工作。此外,偏好设置->数据库->高级->使用Oracle客户端未被选中,因此我认为SQL Developer所做或未做的与我的System.Data.OracleClient.OracleConnection问题几乎没有任何关系。
但是,当我尝试像这样形成连接字符串时:
string.Format("Data Source={0}; user id=/;password=;Integrated Security=yes", dbName);
我收到了ORA-01017错误: 无效的用户名/密码: 登录被拒绝
使用
string.Format("Data Source={0}; user id=/;password=;Integrated Security=no", dbName);
我收到ORA-01005错误。
使用string.Format("Data Source={0};Integrated Security=yes", dbName);
我收到了ORA-01017错误:用户名/密码无效:登录被拒绝
使用
string.Format("Data Source={0}; user id=/;", dbName);
我遇到了ORA-01005错误。
使用
string.Format("Data Source={0};User Id=/;Integrated Security=yes;", dbName);
我收到ORA-01017错误。
当我指定用户名和密码时,我的程序中的OracleConnection和Oracle SQL Developer都可以正常工作。
编辑:这个方法有效。
string.Format("Data Source={0};Integrated Security=yes", dbName);
当 sqlnet.ora 的行
SQLNET.AUTHENTICATION_SERVICES= (NTS)
改为
SQLNET.AUTHENTICATION_SERVICES= (NONE)
如果有人简短回答发生了什么以及为什么,我很愿意授予他/她赏金。
Data Source=INSTANCE;Integrated Security=yes
,不需要用户和密码(可能还要添加Unicode=true)。为什么这不起作用是特定于您的配置,并且很难在没有更多信息的情况下重现。例如:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/171079fd-d836-4fb8-a7ba-fed9916fbb62/cannot-connect-to-oracle-using-integrated-security?forum=sqlreportingservices - Simon Mourier