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