7

只是一个简单的问题:

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

如果通过登录名/用户“foobar”将数据插入到该表中。

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

非常感谢。

4

2 回答 2

4

是的。

您可以使用

EXECUTE AS

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

触发器的默认值是

EXECUTE AS CALLER

我们在哪里找到

呼叫者

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

于 2012-04-05T15:20:52.603 回答
1

默认情况下是的,但您可以使用

WITH EXECUTE AS

关于触发器定义

http://msdn.microsoft.com/en-us/library/ms188354(v=sql.100).aspx

于 2012-04-05T15:19:07.513 回答