12c只有sys能登陆,其它用户均报ORA-01017

12c只有sys能登陆,其它用户均报ORA-01017

ORA-01017: invalid username/password; logon denied

这个报错很基础,但我不是因为字面意义而产生的错误。实际产生这个报错的原因也很简单,比我多熟悉一点点12c的同道们一定很容易就能找到原因。本人菜鸟初初接触12c,遇到这次报错觉得很莫名。

现象及过程

  1. 拿到一个新的服务器,以之前安装11g的习惯安装了12.2.0.1并创建了一个non-CDB。
  2. 继续按照老习惯,用sys登陆数据库,放开profile上所有限制,关闭大小写敏感参数。
    修改profile
    alter system set sec_case_sensitive_logon=false;
  3. 根据业务需求创建了一个用户bam并赋好权限。然后想切换到这个用户,验证一下创建是否正常。
    ORA-01017
    死活登陆不了啊,只报这个错啊。我怎么可能写错了密码,我才建的用户好嘛。
  4. 尝试了好几次,发现好莫名,结果只有sys能登陆。
    sqlplus bam/bam 不行
    sqlplus system/knight 也不行了!
  5. 菜鸟如我也不知道怎么找原因。无知的我怀疑自己是不是在安装的时候误操作了什么,于是决定删了这个库重装。
  6. 重装后立即尝试,sys、system均可正常登陆。
  7. 修改了profile后立即尝试,sys、system均可正常登陆。
  8. 关闭大小写敏感后立即尝试,sys可以正常登陆,system失败!
  9. 创建用户bam并尝试切换到新用户,登陆失败!
  10. 重新把sec_case_sensitive_logon置为TRUE后测试,system正常,bam正常!所以是这个参数的原因。好吧,貌似我们的开发人员也不会在密码大小上做文章,那这参数TRUE就TRUE吧。终于可以把这个环境交给开发了。
  11. 开发拿去用了,说登陆不了。
    ORA-28040
    这个我熟,回头就去服务器上添加了sqlnet.ora,并设置了参数。
    SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
    SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
    我们公司使用的数据库大多还是11g的,开发运维应用的人员使用的客户端版本更老,9、10、11都有。估计以后安装12c及以上的版本都得这么搞一下。
  12. 改了参数后继续让开发测试,开发又说登陆不了!ORA-01017!我不厚道地怀疑了一下,同学,你密码没输错哦?结论当让是人家没有输错啦。可是为什么我能行他不能行呢,我们两的区别在于我的客户端是12c的,他用的是11g。难道就是因为客户端版本?同学,你要不试试重装一个12c的客户端?然后我被打脸,开发说你前两周搭建过一个相同环境的测试库,它就可以正常登陆的。小菜鸟表示我怎么不记得那库是我装的了。。。
  13. 接下来还是要找原因啊。在METLINK上搜了ORA,没找到贴合的,只是更明确了12c以后大小写敏感是强制的。百度时无意发现了有人提到“因为密码规则已经事先确定,所以要重置密码后才能兼容低版本的密码规则”!!!原来如此,于是我立即重置了bam密码。
  14. 通知开发测试,登陆成功了!

分析及收获

  1. 至此,我的记忆回归了~开发所说的两周前能成功登陆的测试库,当初我交付给他的是一个空库,bam用户是他后来自行创建的,在他创建之前sqlnet.ora已经创建并设置好参数了,所以就避开了那个报错。

  2. 在问题处理过程中查看到的一些资料有提到我所设置的sec_case_sensitive_logon从12c开始已经过期无效了,如果我重启数据库应该就能看到存在过期参数的提示。另外,相关的密码文件命令orapwd中的ignorecase参数也已经去掉了。所以,12c开始密码大小写敏感是强制的。
    12c开始orapwd中没有ignorecase了

  3. 这次处理的问题也算是从12c之前版本向12c过渡过程中的磕绊。公司里少说也有近千台终端使用的是低版本客户端,除了这些问题还有没有其它注意事项暂未得知,现在只能先记下来,以后建新数据库时要事先做好这些设置再交付给用户。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值