• 【linux/docker】解决ORA-28000: the account is locked


    项目场景:

    oracle11g客户端连接失败


    问题描述

    java.sql.SQLException: ORA-28000: the account is locked


    原因分析:

    由于oracle 11g 在默认在default概要文件中设置了密码最大错误次数为10,“FAILED_LOGIN_ATTEMPTS=10”,密码错误的次数超过10次,账号就会被锁定。


    解决方案:

    0、docker环境下,多这一个步骤

    进入容器

    docker ps ## 查看容器的id号,复制一下

    docker exec -it xxxxxxxx /bin/bash ## xxxxxxx就是上一部查看的id号

      

    ## 加载一下用户环境变量,进入容器后,自动是oracle用户

    source ~/.bash_profile

    ## 使用sqlplus 工具,进去命令行     

    sqlplus /nolog

    ## 使用sysdba 连接oracle,最大权限,os认证,只能在本机上登陆使用。

    SQL> connect /as sysdba

    1、查看用户使用的概要文件名,一般为DEFAULT

    select username,profile from dba_users;
    

    2、查看概要文件中设置的密码错误后限制的登录次数

    select * from dba_profiles where profile='DEFAULT' and resource_name='FAILED_LOGIN_ATTEMPTS';

    3、将10次(默认)改为不受限制,改动后立即生效

    alter profile default limit failed_login_attempts unlimited; 

    4、检查已经被锁定的用户

    select username,account_status from dba_users;


    如图,账号的状态大致被分为:OPEN(正常),LOCKED(通过SQL语句进行的锁定),LOCKED(TIMED)(超过最大错误登录次数被动锁定),EXPIRED或者EXPIRED(GRACE)(密码过期状态),EXPIRED & LOCKED(TIMED)(密码过期并超过了限制次数被锁定)等。 

    5、解锁被锁定的账户

    alter user 用户名 account unlock;

    解锁完可以再查下状态

    select username,account_status from dba_users;

    扩展

    查看是那个ip造成的USERNAME 用户被锁

    主要监听日志,一般路径为:

    $ORACLE_HOME/network/admin/log/listener.log日志

    win系统下:d:\app\orcl\product\12.1.0\dbhome_1\log\diag\tnslsnr\02843ZYT\listener\alert\log.xml

    如果实在找不到,可以在终端或cmd窗口输入

    lsnrctl status 

    输出的信息中会有监听的日志文件路径

     

     

     

  • 相关阅读:
    新款UI动态壁纸头像潮图小程序源码
    java计算机毕业设计口红专卖网站源码+mysql数据库+系统+lw文档+部署
    Day22力扣打卡
    (一)JDK、转义字符、数据类型
    Hive、Impala、Hue集成LDAP
    陈春花发布声明,这场流量狂欢该到了收尾的时候
    iOS 修改文字大小以适配lable高度宽度
    如何导出数据库数据字典
    数据库定时备份winserver2012篇
    华为OD机试真题【最多颜色的车辆】
  • 原文地址:https://blog.csdn.net/whowhowhoisimportant/article/details/127640784