网站首页 > 技术文章 正文
之前花了些时间做了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
这个问题让我很疑惑,我几乎是排查了所有网络的配置,但是似乎都不奏效,无意中想起这个参数,把它启用之后,就可以正常连接,禁用大小写敏感,连接就会失败,这个配置让我有些沮丧,有种碰到了bug的感觉。
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
这一点上就要自我批评了,如果能够静下心来仔细看看这个参数的含义,而不是想当然,这个问题的分析就会容易的多。 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
明白了这一点再来看这个问题就会清晰很多了。不过说来也是,如果我知道了问题的原委再来看详细的解释就会清晰很多,但是如果我不知道,这个过程又是一个非常痛苦的经历。
猜你喜欢
- 2024-10-14 oralce用户的介绍 ora-01917:user or role
- 2024-10-14 查询所有用户的表,ORACLE下有三个视图
- 2024-10-14 Linux新手入门系列:linux下Oracle定时备份
- 2024-10-14 Oracle 设置RMAN备用用户 oracle rman全库备份
- 2024-10-14 oracle死锁介绍 oracle 死锁原因
- 2024-10-14 MySQL和Oracle相关 mysql和oracle的sql语句一样吗
- 2024-10-14 oracle账户被锁定怎么解锁 oracle账户已被锁定什么意思
- 2024-10-14 Python操作数据库(Oracle) python操作数据库的步骤
- 2024-10-14 Oracle数据库使用攻略 oracle数据库使用教程
- 2024-10-14 Oracle学习笔记三:PL/SQL developer工具安装
你 发表评论:
欢迎- 05-11FANUC修改前端目录教程
- 05-11前端分享-Set你不知道的事
- 05-11jq+ajax+bootstrap改了一个动态分页的表格
- 05-11千万级大表分页查询效率剧降,你会怎么办?
- 05-11Elasticsearch深度分页
- 05-11如何写一个简单的分页
- 05-11手速太快引发分页翻车?前端竞态陷阱揭秘
- 05-11「linux」Socket缓存是如何影响TCP性能的?
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)