ORA-01017 之 12.2 alter user xxx identified by values 'xxxx'


管理用戶密碼版本

默認情況下,Oracle數據庫使用不允許不區分大小寫的密碼的獨占模式來管理密碼版本。

在默認安裝中,SQLNET.ALLOWED_LOGON_VERSION_SERVER參數設置12為啟用獨占模式。獨占模式要求基於密碼的身份驗證協議對正在進行身份驗證的帳戶使用區分大小寫的密碼版本(11G12C)之一。獨占模式不包括使用10G早期版本中使用的密碼版本。升級到Oracle Database 12 c第 2版(12.2)后,使用10G密碼版本的帳戶將無法訪問。這是因為默認情況下服務器以獨占模式運行,而獨占模式不能使用舊10G密碼版本來驗證客戶端。服務器沒有用於驗證客戶端的密碼版本。

版本10g中的用戶帳戶使用10G密碼版本。因此,您應找到使用10G密碼版本的用戶帳戶,然后重置這些帳戶的密碼。這將根據SQLNET.ALLOWED_LOGON_VERSION_SERVER參數的設置生成相應的密碼版本,如下所示:

  • SQLNET.ALLOWED_LOGON_VERSION_SERVER=8產生這三個密碼版本10G11G12C
  • SQLNET.ALLOWED_LOGON_VERSION_SERVER=12生成密碼11G12C密碼版本,並刪除10G密碼版本。
  • SQLNET.ALLOWED_LOGON_VERSION_SERVER=12a僅生成12C密碼版本。

 

1. 如果您首先將SQLNET.ALLOWED_LOGON_VERSION_SERVER設置8,如果將用戶帳戶從Oracle數據庫版本10 g(或更早版本)版本導入當前數據庫版本,那么因為10G密碼版本不區分大小寫,這些用戶仍然可以使用任何情況下的密碼登錄數據庫(大小寫都可以)。

2. 當這樣的用戶更改其密碼,新的11G12C正在自動生成的密碼版本,並且其密碼將自動成為區分大小寫,因為該實例的初始化參數的默認值SEC_CASE_SENSITIVE_LOGONTRUE。(意識到SEC_CASE_SENSITIVE_LOGON 不推薦使用,但目前保留是為了向后兼容, 但是如果強行將SEC_CASE_SENSITIVE_LOGON 改為false ,那么更改用戶密碼使用alter user xxx identified by  values 'user$.spare4'  的方式,將會報ora-01017)

 
即: SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 時
    從10g及以前的版本導入時,仍用以前的密碼版本,不區分大小寫,但是一旦更改該帳號密碼,將用新的密碼版本,區分大小寫,因為 實例的初始化參數的默認值 SEC_CASE_SENSITIVE_LOGONTRUE
 
注: 在18C中不推薦使用SEC_CASE_SENSITIVE_LOGON參數。 它僅為了向后兼容而保留。 (文檔ID 2502204.1)
 
查找當前用戶的所有密碼版本

您可以查詢DBA_USERS數據字典視圖以查找用戶帳戶具有的所有密碼版本的列表 ,版本參數受 sqlnet.ora   SQLNET.ALLOWED_LOGON_VERSION_SERVER 參數影響。

例如:

SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS;

USERNAME                       PASSWORD_VERSIONS
------------------------------ -----------------
JONES                          10G 11G 12C 
ADAMS                          10G 11G
CLARK                          10G 11G
PRESTON                        11G
BLAKE                          10G
PASSWORD_VERSIONS 列顯示該帳戶存在的密碼版本列表。 10G 是指早期不區分大小寫的Oracle密碼版本, 11G 是指基於SHA-1的密碼版本, 12C 是指基於SHA-2的SHA-512密碼版本。
 
 
例:
SYS@orcl>show parameter sec_case_sensitive_logon                                      #該參數默認為true
 
NAME                                 TYPE                         VALUE
------------------------------------ ----------------------     ------------------------------
sec_case_sensitive_logon             boolean                      TRUE
 
 
SYS@orcl>create user huyi identified by huyi;
User created.
 
SYS@orcl>grant create session to huyi ;
Grant succeeded.
 
SYS@orcl>select USERNAME,PASSWORD_VERSIONS from dba_users where username='HUYI';
USERNAME PASSWORD_VERSIONS
-------------------- --------------------
HUYI 11G 12C
 
SYS@orcl>select NAME,PASSWORD,SPARE4 from user$ where name='HUYI';
 
NAME    PASSWORD    SPARE4
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
HUYI                S:C4908554DA822CC7940B9B358C4379F6281F520A160D847754DFCE9C93C0;T:53C08F48F150A31703C2661D1658198473C0AEEC4301B8628ACB18877A4199139A3C8C08E20AFDB1CB2D3A027B37CB327BB5260B7493E0E2EA241620B87EE9D9B78706C
CBF9CC4CB8CCBBDA78287D9C0
 
 
 
SYS@orcl>alter user huyi identified by 123;
User altered.
 
SYS@orcl>select NAME,PASSWORD,SPARE4 from user$ where name='HUYI';
 
NAME    PASSWORD    SPARE4
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
HUYI                S:A5C3F5954E1A36063AE193B8DFAA96F2E7EC585B60685BFAA93F73F20B30;T:3EFBB5D5BB94C821CD3B4C41F66C942F4BEA3995527544200BED5DA8DFEFA491C32DC4D100FE4F004C637BA9BC8E33884BE9608E6571F504BBEFA05BB32C73A81CE1A0B
F4C6BC6B6D1ABB2291C0909B5
 
 
SYS@orcl>alter user huyi identified by 123;
User altered.
 
SYS@orcl>select NAME,PASSWORD,SPARE4 from user$ where name='HUYI';
NAME    PASSWORD    SPARE4
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
HUYI                S:35E35BF21655390E8F9CF476F81BA7D789DFA28B67F09E6A08D6CCA071CC;T:788BBFA7178299B95B3A7AF927D831352AF0B47ED166146BE8A44F6EAD7C09986472A0B73E576EB9DAFAAC46CC34ACA671A436B06B3243834B7D60DC48D39BB8867EF8F
7230A9D7D9B81EA76A6618DC3
 
#注,更改相同的密碼值,SPARE4的值也是不一樣的。
 
 
SYS@orcl>alter user huyi identified by values 'S:35E35BF21655390E8F9CF476F81BA7D789DFA28B67F09E6A08D6CCA071CC;T:788BBFA7178299B95B3A7AF927D831352AF0B47ED166146BE8A44F6EAD7C09986472A0B73E576EB9DAFAAC46CC34ACA671A436B06B3243834B7D60DC48D39BB8867EF8F7230A9D7D9B81EA76A6618DC3';
User altered.
 
SYS@orcl>conn huyi/123
Connected.

 

 
 
 
 
SYS@orcl>alter system set sec_case_sensitive_logon=false ;              #更改參數為false ,不區分大小寫
System altered.
 
SYS@orcl>select NAME,PASSWORD,SPARE4 from user$ where name='HUYI';
NAME    PASSWORD    SPARE4
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
HUYI                S:35E35BF21655390E8F9CF476F81BA7D789DFA28B67F09E6A08D6CCA071CC;T:788BBFA7178299B95B3A7AF927D831352AF0B47ED166146BE8A44F6EAD7C09986472A0B73E576EB9DAFAAC46CC34ACA671A436B06B3243834B7D60DC48D39BB8867EF8F
7230A9D7D9B81EA76A6618DC3
 
 
SYS@orcl>alter user huyi identified by values 'S:35E35BF21655390E8F9CF476F81BA7D789DFA28B67F09E6A08D6CCA071CC;T:788BBFA7178299B95B3A7AF927D831352AF0B47ED166146BE8A44F6EAD7C09986472A0B73E576EB9DAFAAC46CC34ACA671A436B06B3243834B7D60DC48D39BB8867EF8F7230A9D7D9B81EA76A6618DC3';
User altered.
 
 
oracle[test01]/home/oracle> sqlplus  huyi/123
SQL*Plus: Release 12.2.0.1.0 Production on Thu Jun 27 23:50:43 2019
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied                        #ORA-01017  登錄失敗
 
 
 
SYS@orcl>alter system set sec_case_sensitive_logon=true ;                 #更改為默認值
 
oracle[test01]/home/oracle> sqlplus  huyi/123                             #登錄成功
SQL*Plus: Release 12.2.0.1.0 Production on Thu Jun 27 23:51:17 2019
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
 
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
 
TEST@orcl>
 

 

參考:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dbseg/configuring-authentication.html#GUID-B7D8EB60-7FFF-4545-B339-87333024A8DF

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM