Note the following implications of setting the value to 12 or 12a:<br>• A value of FALSE for the SEC_CASE_SENSITIVE_LOGON Oracle instance initialization parameter must not be used because password case insensitivity requires the use of the 10G password version. If the SEC_CASE_SENSITIVE_LOGON Oracle instance initialization parameter is set to FALSE, then user accounts and secure roles become unusable because Exclusive Mode excludes the use of the 10G password version. The SEC_CASE_SENSITIVE_LOGON Oracle instance initialization parameter enables or disables password case sensitivity. However, since Exclusive mode is enabled by default in this release, disabling the password case sensitivity is not supported.<br>Note:<br>• The use of the Oracle instance initialization parameter SEC_CASE_SENSITIVE_LOGON is deprecated in favor of setting the SQLNET.ALLOWED_LOGON_VERSION_SERVER parameter to 12 to ensure that passwords are treated in a case-sensitive fashion.<br>• Disabling password case sensitivity is not supported in Exclusive mode (when SQLNET.ALLOWED_LOGON_VERSION_SERVER is set to 12 or 12a.)<br>• Releases of OCI clients earlier than Oracle Database 10g cannot authenticate to the Oracle database using password-based authentication.<br>• If the client uses Oracle Database 10g, then the client will receive an ORA-03134: Connections to this server version are no longer supported error message. To allow the connection, set the SQLNET.ALLOWED_LOGON_VERSION_SERVER value to 8. Ensure the DBA_USERS.PASSWORD_VERSIONS value for the account contains the value 10G. It may be necessary to reset the password for that account.<br>
复制代码
下面我们来构造一个例子,看看这个参数sec_case_sensitive_logon的影响
<br>SQL> select banner_full from v$version;<br><br>BANNER_FULL<br>----------------------------------------------------------------------------------------------------<br>Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production<br>Version 19.3.0.0.0<br><br><br>1 row selected.<br><br>SQL> show parameter sec_case_sensitive_logon;<br><br>NAME TYPE VALUE<br>-------------------------- ----------- ------------------------------<br>sec_case_sensitive_logon boolean TRUE<br>SQL> alter user system identified by "system#1245";<br><br>User altered.<br>SQL> SET LINESIZE 1080;<br>SQL> SET PAGESIZE 36;<br>SQL> COL USERNAME FOR A24;<br>SQL> COL ACCOUNT_STATUS FOR A16; <br>SQL> COL DEFAULT_TABLESPACE FOR A16;<br>SQL> COL TEMPORARY_TABLESPACE FOR A10;<br>SQL> COL PROFILE FOR A10;<br>SQL> COL LOCK_DATE FOR A20;<br>SQL> COL EXPIRY_DATE FOR A20;<br>SQL> COL PASSWORD_VERSIONS FOR A12;<br>SQL> SELECT USERNAME <br> 2 , ACCOUNT_STATUS<br> 3 , DEFAULT_TABLESPACE<br> 4 , TEMPORARY_TABLESPACE<br> 5 , PROFILE<br> 6 , TO_CHAR(LOCK_DATE,'YYYY-MM-DD HH24:MI:SS') AS LOCK_DATE<br> 7 , TO_CHAR(EXPIRY_DATE,'YYYY-MM-DD HH24:MI:SS') AS EXPIRY_DATE <br> 8 , PASSWORD_VERSIONS<br> 9 FROM DBA_USERS <br> 10 WHERE USERNAME=UPPER('&USERNAME')<br> 11 ORDER BY EXPIRY_DATE;<br>Enter value for username: system<br>old 10: WHERE USERNAME=UPPER('&USERNAME')<br>new 10: WHERE USERNAME=UPPER('system')<br><br>USERNAME ACCOUNT_STATUS DEFAULT_TABLESPA TEMPORARY_ PROFILE LOCK_DATE EXPIRY_DATE PASSWORD_VER<br>---------- ---------------- ---------------- ---------- ---------- --------------- -------------------- ------------<br>SYSTEM OPEN SYSTEM TEMP DEFAULT 2023-10-22 17:25:09 11G 12C<br><br>SQL> alter system set sec_case_sensitive_logon=false scope=both;<br><br>System altered.<br><br>SQL><br>
复制代码
然后我们在另外一个窗口使用system账号登陆数据库
<br>$ sqlplus system/system#1245<br><br>SQL*Plus: Release 19.0.0.0.0 - Production on Tue Apr 25 17:16:28 2023<br>Version 19.3.0.0.0<br><br>Copyright (c) 1982, 2019, Oracle. All rights reserved.<br><br>ERROR:<br>ORA-01017: invalid username/password; logon denied<br>
<br>SQL> show user; <br>USER is "SYS"<br>SQL> show parameter sec_case_sensitive_logon;<br><br>NAME TYPE VALUE<br>------------------------------------ ----------- ------------------------------<br>sec_case_sensitive_logon boolean FALSE<br>SQL><br>
<br>SQL> alter user system identified by "system#1245";<br><br>User altered.<br><br>SQL> SET LINESIZE 1080;<br>SQL> SET PAGESIZE 36;<br>SQL> COL USERNAME FOR A16;<br>SQL> COL ACCOUNT_STATUS FOR A16; <br>SQL> COL DEFAULT_TABLESPACE FOR A16;<br>SQL> COL TEMPORARY_TABLESPACE FOR A10;<br>SQL> COL PROFILE FOR A10;<br>SQL> COL LOCK_DATE FOR A20;<br>SQL> COL EXPIRY_DATE FOR A20;<br>SQL> COL PASSWORD_VERSIONS FOR A12;<br>SQL> SELECT USERNAME <br> 2 , ACCOUNT_STATUS<br> 3 , DEFAULT_TABLESPACE<br> 4 , TEMPORARY_TABLESPACE<br> 5 , PROFILE<br> 6 , TO_CHAR(LOCK_DATE,'YYYY-MM-DD HH24:MI:SS') AS LOCK_DATE<br> 7 , TO_CHAR(EXPIRY_DATE,'YYYY-MM-DD HH24:MI:SS') AS EXPIRY_DATE <br> 8 , PASSWORD_VERSIONS<br> 9 FROM DBA_USERS <br> 10 WHERE USERNAME=UPPER('&USERNAME')<br> 11 ORDER BY EXPIRY_DATE;<br>Enter value for username: system<br>old 10: WHERE USERNAME=UPPER('&USERNAME')<br>new 10: WHERE USERNAME=UPPER('system')<br><br>USERNAME ACCOUNT_STATUS DEFAULT_TABLESPA TEMPORARY_ PROFILE LOCK_DATE EXPIRY_DATE PASSWORD_VER<br>---------------- ---------------- ---------------- ---------- ---------- -------------------- -------------------- ------------<br>SYSTEM OPEN SYSTEM TEMP DEFAULT 2023-10-23 09:21:27 10G 11G 12C<br><br>1 row selected.<br><br>SQL><br>
复制代码
此时验证system账号登陆,则不会报ORA-01017这个错误了。
<br>$ sqlplus system/system#1245<br><br>SQL*Plus: Release 19.0.0.0.0 - Production on Wed Apr 26 09:22:18 2023<br>Version 19.3.0.0.0<br><br>Copyright (c) 1982, 2019, Oracle. All rights reserved.<br><br>Last Successful login time: Tue Apr 25 2023 17:20:29 +08:00<br><br>Connected to:<br>Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production<br>Version 19.3.0.0.0<br><br>SQL><br>
复制代码
注意:最好使用其他账号验证测试,这里仅仅是为了偷懒,使用测试环境的system账号测试验证。更多相关信息也可以参考The new Exclusive Mode default for password-based authentication in Oracle 12.2 conflicts with case-insensitive password configurations. All user login fails with ORA-1017 after upgrade to 12.2 (Doc ID 2075401.1)[2]
参考资料
[1] 官方文档1: https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/parameters-for-the-sqlnet.ora.html#GUID-1FA9D26C-4D97-4D1C-AB47-1EC234D924AA
[2] Doc ID 2075401.1: https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=249715360691380&id=2075401.1&_afrWindowMode=0&_adf.ctrl-state=1agoeyy4f0_80 扫描上面二维码关注我如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!