oracle 19c sec_case_sensitive_logon引數問題

chenoracle發表於2020-08-04

11g前,密碼不區分大小寫,11g開始引入了sec_case_sensitive_logon引數控制密碼敏感,預設true,大小寫敏感。

安裝完19C後,將sec_case_sensitive_logon調成false,設定密碼大小寫不敏感後,發現即使使用正確的密碼也無法登入了。

原來19C中早已廢棄了sec_case_sensitive_logon引數,重啟資料庫也可以看到提示:

MOS上相關的文章有很多,例如:

DBUA Removes SEC_CASE_SENSITIVE_LOGON Init Parameter After Upgrading to 12c (Doc ID 2107717.1)
SEC_CASE_SENSITIVE_LOGON init parameter has been deprecated in 12c, hence ideally you should comment out this parameter before upgrade to 12c. But if you still set SEC_CASE_SENSITIVE_LOGON system parameter, the Database Upgrade Assistant (DBUA) removes the SEC_CASE_SENSITIVE_LOGON system parameter during the upgrade process if it exists in the parameter file (reference Bug 16238456 ).
18c: All user connections fail with ORA-01017 except SYS when SEC_CASE_SENSITIVE_LOGON=FALSE (Doc ID 2502204.1)
What Is the SEC_CASE_SENSITIVE_LOGON Parameter and How Is It Used? (Doc ID 2378179.1)
The SEC_CASE_SENSITIVE_LOGON parameter enables or disables password case sensitivity in the database. It is defaulted to a TRUE value.
True - Database logon passwords are case sensitive
False - Database logon passwords are not case sensitive
For additional information please refer to the following Database Security Guide: 

測試過程如下:

檢視資料庫版本

SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

啟動所有PDB

SQL> alter pluggable database all open;
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED  READ ONLY  NO
 3 CJCPDB  READ WRITE NO

檢視當前引數值

SQL> show parameter sec_case_sensitive_logon
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon     boolean TRUE

建立新使用者

SQL> create user c##chen identified by a;
User created.
SQL> grant connect to c##chen;
Grant succeeded.

密碼區分大小寫

SQL> conn c##chen/a
Connected.
SQL> conn c##chen/A
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.

更改引數

SQL> show parameter sec_case_sensitive_logon
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon     boolean TRUE

SQL> conn / as sysdba
Connected.
SQL> alter system set sec_case_sensitive_logon=false;
System altered.

新使用者無法登入(即使使用正確的密碼)

SQL> conn c##chen/a
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
SQL> conn c##chen/A
ERROR:
ORA-01017: invalid username/password; logon denied

改回引數

SQL> conn / as sysdba
Connected.
SQL> alter system set sec_case_sensitive_logon=true;
System altered.
SQL> conn c##chen/A
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.

可以正常登入

SQL> conn c##chen/a
Connected.
SQL> show user
USER is "C##CHEN"

也可以透過設定sqlnet.ora,實現大小寫不敏感

該引數用來限制可以連線到資料庫伺服器上的最小客戶端版本,比如設定值為10,即10g,11g等以上客戶端版本可以連線到資料庫伺服器上。

[oracle@cjcos01 admin]$ pwd
/u01/app/oracle/product/19.0.0/dbhome_1/network/admin
[oracle@cjcos01 admin]$ cat sqlnet.ora 
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

修改引數

SQL> alter system set sec_case_sensitive_logon=false;
System altered.

建立使用者

SQL> create user c##ccc identified by a;
User created.
SQL> grant connect to c##ccc;
Grant succeeded.

密碼大小寫不敏感

SQL> conn c##ccc/a
Connected.
SQL> conn c##ccc/A
Connected.

歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!  

oracle 19c sec_case_sensitive_logon引數問題

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2709278/,如需轉載,請註明出處,否則將追究法律責任。

相關文章