セキュリティ制約UDFでは、セキュリティ制約で定義されているテーブルの行に対して、INSERT、SELECT、UPDATE、またはDELETE文の実行を許可するかどうかを決定するルールを定義して強制的に実施します。
SQL文が実行されるときに、Teradata Databaseは関連するセキュリティUDFを実行して、操作の実行を要求するユーザーが、その操作のためのアクセス レベルを持っているかどうかを、行に割り当てられたセキュリティ レベルと比較することで検証します。
操作を要求するユーザーが必要なアクセス レベルを持っていないときには、そのリクエストはUDFによって拒否され、該当する次の行に要求処理が移ります。操作を要求するユーザーがSQL操作のOVERRIDE権限を持っている場合、Teradata Databaseは操作を制限するUDFをバイパスします。セキュリティ制約オブジェクトがSQL操作のUDFを指定していない場合は、その操作に対応するOVERRIDE権限をユーザーが持っている場合にのみ操作が成功します。
通常の使用においては、ユーザーはSQL文でセキュリティ制約UDFを呼び出すことはありません。その代わりに、Teradata Databaseは、セキュリティ制約が定義されているテーブルに対して、INSERT、SELECT、UPDATE、またはDELETE文が実行されると、必要な関数を自動的に呼び出します。したがって、保護されたテーブルへのアクセスを必要とするユーザーに対し、セキュリティ制約UDFに対するEXECUTE FUNCTIONアクセス権を付与する必要はありません。ただし、セキュリティ管理者や、セキュリティ制約UDFを開発中で制約関数の戻り値のテストをするユーザーは、SELECT 文の中で制約関数を明示的に呼び出すことができます。この場合には、制約関数に対するEXECUTE FUNCTIONアクセス権が必要です。