什么可能导致数据库中的一个用户触发触发器,而另一个用户不会触发?

时间:2011-02-02 15:18:01

标签: sql sql-server triggers

我有一个大型Web应用程序依赖于数据库(MSSSQL 2008)触发器来执行其某些功能。它提供了一个Web界面,允许最终用户对数据库进行基于表单的更改。

问题是 - 当在apppool中使用一个用户ID运行Web应用程序时,数据库触发器不会被触发(它们具有使我能够看到的日志记录功能);但如果我将AppPool中的用户ID更改为另一个用户名/密码,则会执行这些触发器。请注意,在两种方案中都会执行表更新 。这是我在两种不同情况下系统行为之间可以发现的唯一区别。两个用户都具有dbo权限,并且能够读/写数据库。

对可能导致此问题的任何想法?

感谢。

*的 更新: 这两个用户都不是sysadmin;所有数据库触发器都会发生这种情况。 *

* 更新#2: 在深入研究问题之后,我发现日志记录功能依赖于一个队列(是的,我知道),这两个用户帐户的行为不一致。对我而言,这意味着两个帐户的权限在某种程度上不匹配,这很可能是问题的根源。 *

1 个答案:

答案 0 :(得分:1)

对于该特定用户帐户,这是一个非描述性权限错误。当帐户从数据库中删除并重新添加时 - 触发器,日志记录和所有相关事件开始正常工作。