我有简单的cfschedule任务,它使用check_settings.cfm。 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个月更改一次密码。这可能是原因吗?
答案 0 :(得分:4)
可能发生的事情是帐户因登录失败而被锁定。是的,那是因为ColdFusion DSN中的数据库密码已过期。您必须将密码更新为正确的密码(不确定Web管理员的位置;您应该联系您的DBA)然后可以解锁帐户。
我会检查以确保计划任务在之前的情况下正常运行。可能是因为登录尝试失败导致失败,这就是导致帐户被锁定的原因。
您的DBA还应该能够更改触发锁定帐户的失败尝试次数。我认为当前版本的Oracle中该值为10。
在旁注中,您可能没有过期的密码,但该帐户已被锁定,因为其他人试图使用错误的密码登录。