【问题标题】:ColdFusion: Getting ORA-28000: the account is locked when running cfscheduleColdFusion:获取 ORA-28000:运行 cfschedule 时帐户被锁定
【发布时间】:2015-06-29 10:28:11
【问题描述】:

我有一个使用 check_settings.cfm 的简单 cfschedule 任务。 check_settings有以下内容

<cftry>
<cfquery name="get_settings" datasource="#request.dsn#">
    select id, setting_value
    from tbl_appsettings
    where scope = 'A'
    and active = 1
</cfquery>
<cfcatch type="any">
    <cfmail from="admin@abc.com"
            to="user@abc.com"
            subject="Settings check"
            type="html">
            We have encountered a problem.<br />
            cfcatch.Message = #cfcatch.Message#<br />
            cfcatch.Detail = #cfcatch.Detail#<br />
            The program has been aborted.
    </cfmail>
    <cfabort>
</cfcatch>

该任务是按月安排的,但上次运行时出现错误:

cfcatch.Message = 执行数据库查询时出错。 cfcatch.Detail = [Macromedia][Oracle JDBC Driver][Oracle]ORA-28000:帐户被锁定。

这可能是由于 DSN 设置中的数据库密码过期引起的吗?我确实知道,由于某些安全政策,我们的网络管理员每 3 个月更改一次密码。这可能是原因吗?

【问题讨论】:

    标签: oracle coldfusion


    【解决方案1】:

    可能发生的情况是帐户因登录失败而被锁定。是的,那是因为 ColdFusion DSN 中的数据库密码过期。您必须将密码更新为正确的密码(不确定网络管理员的来源;您应该联系您的 DBA),然后才能解锁帐户。

    我会检查以确保计划任务在以前的情况下正常运行。可能是因为登录尝试失败而失败,这就是导致帐户被锁定的原因。

    您的 DBA 还应该能够更改触发锁定帐户的失败尝试次数。我认为在当前版本的 Oracle 中这个值是 10。

    附带说明,您的密码可能没有过期,但由于其他人试图使用不正确的密码登录,因此帐户被锁定。

    【讨论】:

    • 感谢大卫的回复。唯一引起我怀疑的是,如果 DSN 密码不正确,那么它 CF 应该抛出“执行数据库查询时出错。-无法创建与数据库服务器的连接。尝试重新连接 3 次。放弃。”所以我假设可能是管理员在没有通知用户的情况下更改了数据库密码,并且当多个用户尝试使用旧密码时,帐户被锁定。我还在调查中
    • 我认为 CF 甚至还没有达到检查存储的 DSN 密码的地步——我的猜测是 Oracle 在检查密码之前就返回了“帐户锁定”错误。不过,我宁愿不要尝试将自己锁定在我的帐户之外以检查该理论:)
    猜你喜欢
    • 2015-01-07
    • 2014-01-26
    • 2023-03-17
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多