oracle登录时报错1017,在天堂 - 技术老男

数据库升级为12c后,客户端没有做任何改变但连接不上数据库,报ORA-1017错误:

具体原因是ORACLE 12C R2中默认的认证协议是12, 即便是sqlnet.ora文件不存在默认值同样生效,12是一种区分大小写密码的认证,是一种新的认证协议。

解决办法是创建或在现有的sqlnet.ora文件中增加参数sqlnet.allowed_logon_version_server.

在12c以前的版本中解决方法是在sqlnet.ora文件增加参数SQLNET.ALLOWED_LOGON_VERSION, 该参数在12c中以被sqlnet.allowed_logon_version_server 和sqlnet.allowed_logon_version_client替代,

如果在12c中配置了SQLNET.ALLOWED_LOGON_VERSION,会在DB ALERT 中出现“Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter”提示。

数据库的认证协议并不是数据库软件的版本, 而对应的是dba_users.password_versions的值, 使用下面的sql确认:

SELECT USERNAME, PASSWORD_VERSIONS FROM DBA_USERS ORDER BY 1;

在11g中的密码版本10g和11g组合, 12c中密码版本是11g, 12c的组合.

如果想使用10g的密码版本登录12.2数据库需要修改sqlnet.allowed_logon_version_server 到11或更低的值。sqlnet.allowed_logon_version_server 和sqlnet.allowed_logon_version_client配置的值是最小认证版本的值,如数据库是12c, sqlnet.allowed_logon_version_server=10, 那10g,11g,12c的client都可以访问,包含10g对应的JDBC驱动包。 sqlnet.allowed_logon_version_server是配置在数据库服务器(被访问端)的DB $ORACLE_HOME的sqlnet.ora(不是GI HOME),在12.2版本有效值应该是8,9,10,11,12,12A,当ALLOWED_LOGON_VERSION_SERVER的值设为12时,只有已经应用了关键补丁更新CPUOct2012或更高版本的客户端,或者具有等同更新的11.2.0.3客户端版本才能连接到服务器。

如果遇到该类问题解决方法是配置SQLNET.ALLOWED_LOGON_VERSION_SERVER的值,根据客户端版本设置一个比默认值更宽松的值。例如11或者更低:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=11,

下载12c对应的JDBC驱动包或直接从oracle db software中复制给应用。

如果使用DB LINK时同样需要在创建dblink的目标数据库端sqlnet.ora中配置sqlnet.allowed_logon_version_client参数。

如果已完成了上面的修改,但是登录提示密码错误ORA-1017,同常还需要与SEC_CASE_SENSITIVE_LOGON参数配合关闭密码大小写敏感。

在12.2数据库中创建的用户密码版本默认为‘11G 12C’,这是一种排除了10g密码认证的版本,因为登陆用户没有10G的密码版本,

所以使用10g或更老client导致报错ORA-1017。这类问题的解决方法是重新修改一次密码,查看用户密码版本是否最新:

SELECT USERNAME FROM DBA_USERS WHERE TRIM(PASSWORD_VERSIONS) = '11G 12C';

密码更改时,除了’11G 12C’密码版本之外,数据库还会为其帐户生成缺少的10G版本。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值