セキュリティ制約UDFでは、テーブルの行に対するINSERT、SELECT、UPDATE、またはDELETE文の実行を許可または拒否するかどうかを決定するルールを定義して実施します。
各制約UDFは、コード化されたルールを基にSQL操作を制限します。UDFルールはSQL操作ごと、制約システムが階層型(レベル)または非階層型(コンパートメント)ラベル システムかどうかによって異なります。
階層制約と非階層制約には、異なる種類のUDFが必要です。
ユーザーが行にアクセスするたびに、SQL操作(INSERTなど)に関連付けられたUDFが呼び出され、ユーザーによる操作の実行が可能かどうかが判別されます。操作を要求するユーザーに、行への操作の実行に必要なアクセス レベルがない場合、そのリクエストはUDFによって拒否され、該当する次の行にリクエスト処理が移ります。
ユーザーには、自動的に呼び出されたUDFについてのEXECUTE FUNCTION権限は必要はありません。
CONSTRAINTオブジェクトがSQL操作のUDFを指定していない場合は、その操作に対応するOVERRIDE権限をユーザーが持っている場合にのみ操作が成功します。
操作を要求するユーザーがSQL操作のOVERRIDE権限を持っている場合、リクエストは操作を制限するUDFをバイパスします。