您不能授予触发器的执行权限,因为用户不能执行触发器:SQL Anywhere 会作为数据库操作的响应来触发触发器。不过,触发器确实有执行期间的相关权限,用于定义其执行某些操作的权利。
触发器使用定义了这些权限的表的所有者的权限(而不是导致触发器触发的用户的权限,并且不是创建该触发器的用户的权限)执行。
如果触发器引用某张表,在不显式指定所有者名称的情况下,触发器会使用表创建者的组成员资格来查找表。例如,如果 user_1.Table_A 上的触发器引用 Table_B,并且不指定 Table_B 的所有者,则 Table_B 必须是由 user_1 创建的,或者 user_1 必须(直接或间接地)是 Table_B 所有者组的成员。如果这两个条件都不具备,在该触发器触发时,数据库服务器将返回一条消息,指示未找到表。
此外,user_1 必须具有执行该触发器中所指定的操作的权限。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |