ユーザはトリガを実行できないので、トリガを実行するパーミッションを与えることはできません。データベースに対するアクションに対応して SQL Anywhere がトリガを起動します。トリガが実行される場合は、トリガに関連するパーミッションがあり、その動作を実行する権利を定義します。
トリガは、トリガが定義されているテーブルの所有者のパーミッションを使用して実行します。トリガを起動する原因となったユーザのパーミッションや、トリガを作成したユーザのパーミッションではありません。
トリガがテーブルを参照するときは、そのテーブルの所有者名を特に指定しないで、テーブル作成者のグループ・メンバシップを使います。たとえば、user_1.Table_A にあるトリガが Table_B を参照し、Table_B の所有者の名前を指定しないとします。この場合、Table_B が user_1 によって作成されたか、user_1 が Table_B の所有者であるグループの (直接または間接的に) メンバでなければなりません。どちらの条件も満たされない場合は、トリガを起動すると、データベース・サーバがテーブルが見つからないことを示すメッセージを返します。
また、user_1 はトリガに指定された操作を実行するためのパーミッションを持っていなければなりません。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |