zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    “echo >”和“echo >>”的区别
    socket 简介
    Shell 获取当前执行脚本的路径
    input子系统 KeyPad-Touch上报数据格式与机制
    Java垃圾回收-GC
    Java多线程-yield函数&interrupt函数
    Java内存模型-堆和栈的区别
    Java反射
    Java正则表达式
    Java多线程-sleep和wait的区别
  • 原文地址:https://www.cnblogs.com/cqdba/p/11097815.html
Copyright © 2011-2022 走看看