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