前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle 12.2中的一个参数说明(r12笔记第76天)

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

作者头像
jeanron100
发布2018-03-21 16:26:10
1K0
发布2018-03-21 16:26:10
举报
之前花了些时间做了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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档