Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - SQL 用法 » 存储过程、触发器、批处理和用户定义的函数 » 触发器

 

执行触发器的特权

您不能授予触发器的执行特权,因为用户不能执行触发器:SQL Anywhere 会作为数据库操作的响应来触发触发器。不过,触发器确实有执行期间的相关特权,用于定义其执行某些操作的权利。

触发器使用定义了这些特权的表的所有者的特权(而不是导致触发器触发的用户的特权,并且不是创建该触发器的用户的特权)执行。

如果触发器引用某张表,在不显式指定所有者名称的情况下,触发器会使用表创建者的角色成员资格来查找表。例如,如果 user_1.Table_A 上的触发器引用 Table_B,并且不指定 Table_B 的所有者,则 Table_B 必须是由 user_1 创建的,或者 user_1 必须(直接或间接地)是 Table_B 所有者角色的成员。如果这两个条件都不具备,在该触发器触发时,数据库服务器将返回一条消息,指示未找到表。

此外,user_1 必须具有执行该触发器中所指定的操作的特权。

 另请参见