1.首先很快会想到设置敏感度。
show parameter logon; 或者 show parameter SEC_CASE_SENSITIVE_LOGIN;
alter system set.....
2.除此之外,还有一个制约的参数PASSWORD_VERSIONS
SQL> select PASSWORD_VERSIONS, username, ACCOUNT_STATUS from dba_users where username='SYS';
PASSWORD USERNAME ACCOUNT_STATUS
-------- ------------------------------ --------------------------------
10G SYS OPEN
然后在11G 的数据库登入,运行下alter user sys identifiedby "****"; 然后再看
SQL>select PASSWORD_VERSIONS, username, ACCOUNT_STATUS from dba_users whereusername='SYS';
PASSWORDUSERNAME ACCOUNT_STATUS
-------------------------------------- --------------------------------
10G 11G SYS OPEN
其实10G 与 11G 在 PASSWORD_VERSIONS 不同的原因在于USER$.SPARE4列不一样(10g的该列为空)。
同时 password_versions的优先级大于sec_case_sensitive_logon。
在11G 里测试,假如把一个属于SYS权限的用户的 spare4 置空,就会不再区分大小写。
update SYS.USER$ t set SPARE4='' where name='ORACLE11G';
总结:
1.password_versions的优先级大于sec_case_sensitive_logon。
2.可以置空spare4 来设置不区分大小写。