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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » ストアド・プロシージャとトリガ » プロシージャ、トリガ、バッチの使用 » トリガの概要

 

トリガを実行するためのパーミッション

ユーザはトリガを実行できないので、トリガを実行するパーミッションを与えることはできません。データベースに対するアクションに対応して SQL Anywhere がトリガを起動します。トリガが実行される場合は、トリガに関連するパーミッションがあり、その動作を実行する権利を定義します。

トリガは、トリガが定義されているテーブルの所有者のパーミッションを使用して実行します。トリガを起動する原因となったユーザのパーミッションや、トリガを作成したユーザのパーミッションではありません。

トリガがテーブルを参照するときは、そのテーブルの所有者名を特に指定しないで、テーブル作成者のグループ・メンバシップを使います。たとえば、user_1.Table_A にあるトリガが Table_B を参照し、Table_B の所有者の名前を指定しないとします。この場合、Table_B が user_1 によって作成されたか、user_1 が Table_B の所有者であるグループの (直接または間接的に) メンバでなければなりません。どちらの条件も満たされない場合は、トリガを起動すると、データベース・サーバがテーブルが見つからないことを示すメッセージを返します。

また、user_1 はトリガに指定された操作を実行するためのパーミッションを持っていなければなりません。

参照