CONSTRAINTオブジェクトを変更または削除するプロセスには、すべての制約割り当ての削除が必要です。
対応する制約列が含まれたテーブルがアーカイブされた後、CONSTRAINTオブジェクト内のname:valueペアを変更すると、COPY操作およびRESTORE操作が意図しない影響を受ける可能性があります。変更されたパラメータによっては、そのような変更がセキュリティに危害を与える可能性があります。 アーカイブ、コピー、および復元要件を参照してください。
- セキュリティ制約が割り当てられるデータベース オブジェクトを決定します。
- セキュリティ制約があるテーブルとインデックスを検索します。 セキュリティ制約付きのテーブルとインデックスの検索を参照してください。
- セキュリティ制約があるビューを検索します。 セキュリティ制約が含まれるビューの検索を参照してください。
- ステップ1aで識別されたインデックスを削除します。
- ALTER TABLE文を使用して、ステップ1aで識別されたすべてのテーブルの制約列を削除します。 例は以下のとおりです。
ALTER TABLE table_name DROP constraint_column_name ;
- ステップ1bで識別されたすべてのビューを置き換えて制約列を削除します。
- 制約の割り当て先になるユーザーとプロファイルを識別します。 割り当てられた制約を持つユーザーまたはプロファイルの検索を参照してください。
- 以下からセキュリティCONSTRAINTオブジェクト割り当てを削除します。
- MODIFY USER文を使用して割り当てる制約の割り当て先になるすべてのユーザー。 MODIFY USER文でセキュリティ制約を変更または削除するを参照してください。
- MODIFY PROFILE文を使用して割り当てる制約の割り当て先になるすべてのプロファイル。 プロファイル内のセキュリティ制約の変更または削除についてを参照してください。
- セキュリティ制約のすべての割り当てを削除した後、以下のいずれかを行なうことができます。
- ALTER CONSTRAINT文を使用して制約オブジェクトを変更します。例:
ALTER CONSTRAINT constraint_name AS [VALUES value_name:integer_code … [,value_name:integer_code]) ] [FUNCTION {ADD|DROP|REPLACE} function_specification] ;
ALTER CONSTRAINT文で使用可能なオプションのいずれかを指定しない場合、CONSTRAINTはオプションの既存の値を保持します。説明:
構文要素 説明 constraint_name 変更されるCONSTRAINTオブジェクトの名前。 - VALUES value_name:Integer_code...
- [,value_name:integer_code ]
文にVALUESオプションが含まれている場合、新しいname:valueペアのセットで古いセットを置き換えます。 FUNCTION {ADD | DROP | REPLACE} function_specification 変更されるUDFを指定します。例えば、次のようになります。 文にFUNCTIONオプションが含まれている場合、ADD、DROP、またはREPLACEのいずれかを指定する必要があります。- 指定された関数型がCONSTRAINTオブジェクトに含まれていない場合にのみ、ADDオプションは有効です。完全な関数仕様を入力する必要があります。例:
FUNCTION ADD
INSERT SYSLIB. insert_udf_name
- DROPオプションはUDFをCONSTRAINTオブジェクトから削除するだけで、指定されたUDFには影響を与えません。例えばINSERTなど、関数に対するSQL操作しか指定する必要はありません。
- REPLACEオプションでは、CONSTRAINTオブジェクトの同じ型の既存のUDFを指定されたUDFで置き換えます。完全な関数仕様を入力する必要があります。
1つのALTER CONSTRAINT文に対して1つの関数のみを変更できます。 - DROP CONSTRAINT文を使用して制約オブジェクトを削除します。例:
DROP CONSTRAINT constraint_name ;
- ALTER CONSTRAINT文を使用して制約オブジェクトを変更します。例:
- 制約を変更または削除した後、ステップ2~6で実行した操作を逆順に実行して、テーブル、ビュー、ユーザーおよびプロファイルにセキュリティ制約を再適用します。