SQL Server 2008 - 触发器是否以与登录/用户相同的权限运行?

Chr*_*non 7 t-sql sql-server triggers database-security sql-server-2008

只是一个简单的问题:

假设我在数据库中的表上放置了一个插入触发器.

如果通过登录/用户"foobar"将数据插入该表.

触发器是否以与"foobar"相同的访问权限/权限执行?

非常感谢.

Mat*_*ten 4

是的。

您可以使用以下命令控制此行为

EXECUTE AS
Run Code Online (Sandbox Code Playgroud)

create 语句的子句,如此处所述

触发器的默认值是

EXECUTE AS CALLER
Run Code Online (Sandbox Code Playgroud)

我们在哪里找到

呼叫者

指定模块内的语句在模块调用者的上下文中执行。执行模块的用户不仅必须对模块本身拥有适当的权限,而且还必须对模块引用的任何数据库对象拥有适当的权限。 CALLER 是除队列之外的所有模块的默认值,并且与 SQL Server 2005 的行为相同。