重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 685|回复: 0
打印 上一主题 下一主题

[Oracle] 使用SEC_CASE_SENSITIVE_LOGON参数控制密码大小写敏感性

[复制链接]
跳转到指定楼层
楼主
发表于 2025-8-8 17:18:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在Oracle的11g之前的版本中密码是不区分大小写的(使用双引号强制除外)。
在Oracle的11g版本中对此有所增强。从此密码有了大小写的区分,这个大小写敏感特性是通过SEC_CASE_SENSITIVE_LOGON参数来控制的。


1.创建Secooler用户,注意它的密码同时包含大写字母和小写字母。
sql> create user Secooler identified by Secooler;
User created.

sql> grant connect to secooler;
Grant succeeded.


从这个授权成功上可见,用户名仍然不区分大小写。



2.尝试使用全小写的密码登陆
sql> conn secooler/secooler
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.


报错,显然不行,此时大小写敏感性检查已经启用。



3.使用“正确”的密码“Secooler”进行登陆,成功。
sql> conn secooler/Secooler
Connected.


sql> show user;
USER is "SECOOLER"


4.看一下“幕后黑手”SEC_CASE_SENSITIVE_LOGON参数的描述
sql> show parameter sec_case_sensitive_logon
NAME                       TYPE       VALUE
-------------------------- ---------- -----------
sec_case_sensitive_logon   boolean    TRUE



sql> select a.ksppinm name,b.ksppstvl value,a.ksppdesc description
  2    from x$ksppi a,x$ksppcv b
  3   where a.indx = b.indx
  4     and a.ksppinm = 'sec_case_sensitive_logon'
  5  /

NAME                      VALUE  DESCRIPTION
------------------------- ------ -----------------------------------------
sec_case_sensitive_logon  TRUE   case sensitive password enabled for logon

该参数默认值是“TRUE”,因此,默认情况下密码大小写是敏感的。



5.将SEC_CASE_SENSITIVE_LOGON参数修改为“FALSE”
sql> alter system set sec_case_sensitive_logon = FALSE;
System altered.



6.此时系统将不对密码做大小写敏感验证
sql> conn secooler/secooler
Connected.


7.即使修改SEC_CASE_SENSITIVE_LOGON参数为“FALSE”,在系统中记录的也是区分大小写的形式,只是不进行验证而已。


1)创建另外一个用户sec,并授权
sql> create user sec identified by SeC;
User created.

sql> grant connect to sec;
Grant succeeded.


2)在SEC_CASE_SENSITIVE_LOGON参数为“FALSE”时尝试连接,成功,因为此时不进行校验。
sql> conn sec/sec
Connected.

3)恢复SEC_CASE_SENSITIVE_LOGON参数为“TRUE”,再次尝试连接将会失败。
sql> conn / as sysdba
Connected.


sql> alter system set sec_case_sensitive_logon = TRUE;
System altered.

sql> conn sec/sec
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.



4)使用“正确”的密码进行尝试,成功。
sql> conn sec/SeC
Connected.


5)结论
11g环境中密码是以区分大小写的形式进行存储的。


Oracle 11g文档参考(11gR1和11gR2内容相同)
http://download.oracle.com/docs/cd/E11882_01/server.112/e10820/initparams218.htm#REFRN10299
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-18 03:02 , Processed in 0.308821 second(s), 24 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表