Oracle 帐户被锁定的原因可能有很多。当帐户被锁定并且用户寻求我们的帮助时,以下可能是帐户锁定的可能原因:
- 具有适当权限的用户手动锁定帐户(又名
ALTER USER user_name ACCOUNT LOCK
) - 来自配置文件的密码参数
- 用户超过
FAILED_LOGIN_ATTEMPTS
PASSWORD_LIFE_TIME
超过,或两者都PASSWORD_GRACE_TIME
超过。
- 用户超过
还有其他我们应该看到的地方,或者帐户可能被锁定的任何其他方式吗?
Oracle 帐户被锁定的原因可能有很多。当帐户被锁定并且用户寻求我们的帮助时,以下可能是帐户锁定的可能原因:
ALTER USER user_name ACCOUNT LOCK
)FAILED_LOGIN_ATTEMPTS
PASSWORD_LIFE_TIME
超过,或两者都PASSWORD_GRACE_TIME
超过。还有其他我们应该看到的地方,或者帐户可能被锁定的任何其他方式吗?
如果打开了审计跟踪,那么我更喜欢使用以下方法来帮助跟踪登录失败(这通常是导致帐户被锁定的原因):
returncode 是将从数据库返回的 ORA 错误:1017 是“无效的用户代码或密码”,28000 是“帐户被锁定”。
此视图提供有价值的信息,例如登录失败发生的时间、错误源自的计算机以及操作系统用户。
如果您没有打开 audit_trail,您可以通过以下方式进行验证:
那么显然,上述查询对过去的登录失败没有帮助,但您可能需要考虑将其打开以帮助解决未来的失败。另外,请记住,此更改需要重新启动数据库才能生效。
您可以参考此文档以将此环境变量设置为适合您的环境的值:http: //docs.oracle.com/cd/B28359_01/server.111/b28320/initparams017.htm
您可以按如下方式设置此参数:
请记住,如果您确实打开了 audit_trail,请考虑定期从审计表中清除较旧的记录,否则该表可能会变得非常笨重。有一个内容丰富的博客在这里讨论这个问题:http ://www.oradba.ch/2011/05/database-audit-and-audit-trail-purging/
至于另一个可能的原因:
如果您在分布式环境中运行(通过数据库链接连接的多个数据库),那么代理数据库链接(空用户/密码)可能是您的问题,因为此类数据库链接尝试使用从源数据库。
如果源和目标之间的凭据不同,则返回 ORA-1017,这将计入目标数据库上的登录尝试(前提是用户代码相同,只是密码不同)。
此外,如果源数据库用户是通过代理用户登录的,那么无论密码是否匹配,代理数据库链接总是会失败并出现 ORA-1017。
特权
CONNECT
可以撤销是另一种可以阻止用户帐户的方式。这里解释得很好。