ITPub博客

首页 > 数据库 > Oracle > Oracle 12.2中的一个参数说明(r12笔记第76天)

Oracle 12.2中的一个参数说明(r12笔记第76天)

原创 Oracle 作者:jeanron100 时间:2017-05-26 23:29:04 0 删除 编辑

    之前花了些时间做了Oracle 10g,11g,12c参数的差别,其中有一个参数很有意思,在不同版本代表的含义还有所差别。就是sec_case_sensitive_logon。它是从10g到11g新增的参数,默认是true,代表的含义就是登录用户的大小写敏感,而实际上这个参数的使用效果却不好,基本是作为默认的配置来禁用掉的,举一个很简单的例子,oracle 10g中我使用system/oracle的用户名密码和SYSTEM/ORACLE这样的用户名密码是没有差别的,而一旦升级到11g,开启了这个特性,很多连接就会被阻塞,再加上其它的特性,密码错误次数触发阈值,数据库账户直接被锁定,直接导致业务中断,所以抛开规范化和标准化的束缚,这个特性本意是好的,但是总是感觉差了那么一点。

 这种感觉怎么形容呢,就和我看到的这个动态图效果差不多,好比左边是Oracle的用户,右边是Oracle的产品组。

 

  所以Oracle 12c中这个参数又有变化,关键你有变化,含义还和以前不一样了,这就让人很纠结了。

   这个问题得从我最近做的一个测试说起。

   我配置了一个PDB,但是创建用户之后,怎么连接都提示错误。

$ sqlplus test/oracle@tcymob0
SQL*Plus: Release 12.2.0.1.0 Production on Fri May 26 18:13:24 2017
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied   这个问题让我很疑惑,我几乎是排查了所有网络的配置,但是似乎都不奏效,无意中想起这个参数,把它启用之后,就可以正常连接,禁用大小写敏感,连接就会失败,这个配置让我有些沮丧,有种碰到了bug的感觉。

  这一点上就要自我批评了,如果能够静下心来仔细看看这个参数的含义,而不是想当然,这个问题的分析就会容易的多。 Ensure that the SEC_CASE_SENSITIVE_LOGON parameter is not set to FALSE if the SQLNET.ALLOWED_LOGON_VERSION_SERVER parameter is set to 12 or 12a. This is because the more secure password versions used for this mode only support case-sensitive password checking. For compatibility reasons, Oracle Database does not prevent the use of FALSE for SEC_CASE_SENSITIVE_LOGON when SQLNET.ALLOWED_LOGON_VERSION_SERVER is set to 12 or 12a. Setting SEC_CASE_SENSITIVE_LOGON to FALSE when SQLNET.ALLOWED_LOGON_VERSION_SERVER is set to 12 or 12a causes all accounts to become inaccessible. If SQLNET.ALLOWED_LOGON_VERSION_SERVER is set to 11 or a lower value, then Oracle recommends that you set SEC_CASE_SENSITIVE_LOGON to TRUE, because the more secure password versions used in Exclusive Mode (when SQLNET.ALLOWED_LOGON_VERSION_SERVER is 12 or 12a) in Oracle Database 12c do not support case insensitive password matching.

    官方文档的描述在这里发现和11g有了很大的差别,这个参数的设置目前是向下兼容,但是在新版本中已经过期,在设置的时候务必需要保证sqlnet.ora中的设置需要兼容,文件中的参数SQLNET.ALLOWED_LOGON_VERSION_SERVER如果是12,12a就需要保证SEC_CASE_SENSITIVE_LOGON不为false

 明白了这一点再来看这个问题就会清晰很多了。不过说来也是,如果我知道了问题的原委再来看详细的解释就会清晰很多,但是如果我不知道,这个过程又是一个非常痛苦的经历。


  

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-2139957/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
技术文章每天更新,阵地已转移到微信公众号端。 公众号:jianrong-notes

注册时间:2012-05-14

  • 博文量
    1498
  • 访问量
    14270068