一旦达到某个阈值,我该如何执行触发?

时间:2010-08-13 13:13:39

标签: sql-server-2008 triggers

我有一个Web应用程序,它将无效的登录尝试记录到数据库表中。

有没有办法在桌面上创建一个只在最后几个小时左右创建了一定数量的记录后运行的触发器,而不是像if count(*) > 100那样?

最终目标是在登录失败次数异常时发送电子邮件。

4 个答案:

答案 0 :(得分:1)

创建一个针对每种情况运行的触发器,并让它查看是否满足进一步操作的条件。如果不需要继续操作(例如,对于过去一小时内的尝试102),您可以记录上次在另一个表中执行此类操作的时间,然后制定必须遵循的标准。每小时100次尝试失败,自上次此类行动起必须是一小时。

答案 1 :(得分:1)

请勿使用触发器执行此操作。创建作业以监视过去一小时内失败登录的计数,并在超过特定阈值时发送电子邮件。让它每小时运行一次。

答案 2 :(得分:1)

为何触发?创建每n分钟运行一次的SQL代理作业。您检查在最后一小时内是否有超过100次无效登录尝试,如果这样,则运行带有详细信息的数据库邮件proc,查找sp_send_dbmail

答案 3 :(得分:0)

你做不到。最好的选择是将检查放在触发器内部。