ORA-01017错误求助:SSMA连Oracle 11g失败但SQLPLUS可连接
解决SSMA连接Oracle时的ORA-01017错误
- 确认ODP.NET与Oracle客户端版本匹配:保证安装的ODP.NET版本和Oracle 11.2客户端完全兼容,避免混用不同版本组件。可在
C:\Windows\Assembly或GAC_MSIL目录查看ODP.NET版本号,需为11.2.x.x系列。 - 检查SSMA的Oracle驱动配置:打开SSMA的「工具」→「项目设置」→「Oracle连接」,确认驱动选择ODP.NET,且指定的Oracle客户端路径指向正确的11.2安装目录(例如
C:\app\client\<用户名>\product\11.2.0\client_1)。 - 验证用户名密码大小写一致性:Oracle 11g默认大小写不敏感,但如果数据库开启
SEC_CASE_SENSITIVE_LOGON参数,需确保SSMA输入的密码大小写和SQLPLUS一致。可在SQLPLUS中执行SELECT value FROM v$parameter WHERE name='sec_case_sensitive_logon';查看参数状态,若为TRUE则严格匹配密码大小写。 - 清除SSMA缓存凭据:关闭SSMA,删除
C:\Users\<你的用户名>\AppData\Roaming\Microsoft\SSMA for Oracle路径下的缓存文件,重启后重新输入登录信息。 - 测试ODP.NET独立连接:编写简单C#程序验证ODP.NET是否能正常连接,排除SSMA本身问题:
若程序连接成功,问题出在SSMA配置;若失败,重新安装ODP.NET并确认客户端配置正确。using Oracle.DataAccess.Client; class Program { static void Main() { string connString = "Data Source=<你的TNS名称>;User Id=<用户名>;Password=<密码>;"; using (OracleConnection conn = new OracleConnection(connString)) { conn.Open(); System.Console.WriteLine("连接成功"); conn.Close(); } } } - 核对TNS配置准确性:即使SQLPLUS能连接,也要确认
TNSNAMES.ORA中的服务名配置无多余空格或特殊字符,且SSMA选择的TNS名称与文件中完全一致。
内容的提问来源于stack exchange,提问作者byhwang
相关产品推荐
相关产品推荐

