ORA-28000:帐户被锁定错误频繁出现

问题描述 投票:0回答:10

我面临以下错误:

 ORA-28000: the account is locked 

这是数据库问题吗?每当我使用alter SQL查询解锁用户帐户时,即

ALTER USER username ACCOUNT UNLOCK
,就会暂时OK。

一段时间后,同一个帐户再次被锁定。数据库使用的是oracle

XE
版本。还有人有同样的问题吗?

oracle oracle11g oracle10g oracle-xe
10个回答
57
投票

问题的原因之一可能是您使用的密码策略。

如果您没有此类策略,请使用以下查询检查

DEFAULT
配置文件中密码属性的设置:

SELECT resource_name, limit
FROM dba_profiles 
WHERE profile = 'DEFAULT'
AND resource_type = 'PASSWORD';

如果需要,您只需使用以下查询将

PASSWORD_LIFE_TIME
更改为
unlimited

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

这个链接可能对您的问题有帮助。


49
投票

解锁用户的方式:

$ sqlplus  /nolog
SQL > conn sys as sysdba
SQL > ALTER USER USER_NAME ACCOUNT UNLOCK;

并打开新终端

SQL > sqlplus / as sysdba
connected
SQL > conn username/password  //which username u gave before unlock
  • 它会询问新的
    password:password
  • 它会要求重新输入
    password:password
  • 按回车键即可登录

17
投票

这里有其他解决方案仅解锁被阻止的用户。从命令提示符以 SYSDBA 身份登录:

sqlplus "/ as sysdba"

然后输入以下命令:

alter user <your_username> account unlock;

7
投票

检查

PASSWORD_LOCK_TIME
参数。如果设置为 1,那么即使您发出
alter user unlock
命令,您也将无法在 1 天内解锁密码。


6
投票

我也遇到过类似的问题,并通过以下步骤解决了它:

  1. 打开 Windows 命令提示符。
  2. 使用命令登录
    sqlplus "/ as sysdba"
  3. 然后执行命令
    alter user HR identified by password account unlock


    请注意,
    password
    是我使用的密码。

    通过上述步骤,您可以以用户 HR 的身份使用密码password 连接到 Oracle 数据库。

5
投票

解决方案01

使用以下查询解锁帐户:

SQL> select USERNAME,ACCOUNT_STATUS from dba_users where username='ABCD_DEV';    
USERNAME             ACCOUNT_STATUS
-------------------- --------------------------------
ABCD_DEV       LOCKED

SQL> alter user ABCD_DEV account unlock;    
User altered.

SQL> select USERNAME,ACCOUNT_STATUS from dba_users where username='ABCD_DEV';    
USERNAME             ACCOUNT_STATUS
-------------------- --------------------------------
ABCD_DEV       OPEN

解决方案02

使用以下查询检查

PASSWORD_LIFE_TIME
参数:

SELECT resource_name, limit FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_type = 'PASSWORD';

RESOURCE_NAME                    LIMIT
-------------------------------- ------------------------------
FAILED_LOGIN_ATTEMPTS            10
PASSWORD_LIFE_TIME               10
PASSWORD_REUSE_TIME              10
PASSWORD_REUSE_MAX               UNLIMITED
PASSWORD_VERIFY_FUNCTION         NULL
PASSWORD_LOCK_TIME               1
PASSWORD_GRACE_TIME              7
INACTIVE_ACCOUNT_TIME            UNLIMITED

使用以下查询更改参数

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

4
投票

登录Oracle数据库服务器机器上的SQL Plus客户端。

输入用户名:系统

输入密码:密码 [仅当您在数据库安装时未更改默认密码]

按回车键。之后,您将看到连接状态。

现在,

SQL> ALTER USER [USER_NAME] ACCOUNT UNLOCK;

按回车键。

您将看到消息:

user altered.

现在尝试使用数据库客户端[sqldeveloper]上的用户名登录。


2
投票

此问题的产生是由于超出了 FAILED_LOGIN_ATTEMPTS,因此我们可以从

获取该问题

选择资源名称,限制来自 dba_profiles
WHERE 配置文件 = '默认' AND 资源类型 = '密码';

然后我们可以获得用户状态,这意味着帐户被锁定或打开

从 DBA_USERS 选择 *;

如果特定用户帐户被锁定,您可以通过以下方式将其更改为解锁:

更改用户{帐户}帐户解锁;

如果你想增加FAILED_LOGIN_ATTEMPTS的数量,你可以使用

更改配置文件默认限制失败_登录_尝试无限制;


1
投票

使用用户名解锁特定用户帐户:

更改用户 [USER_NAME] 帐户解锁;

解锁所有用户帐户

选择“更改用户”||用户名|| '账户解锁;'来自 dba_users;


0
投票

就我而言(我正在使用容器),这是因为 APEX_PUBLIC_USER 被锁定。 奇怪,因为我用 -e IGNORE_APEX=TRUE 启动容器。

© www.soinside.com 2019 - 2024. All rights reserved.