UDTMETHOD権限を持つユーザーは、どのUDTおよびそのメソッドも無制限に使用することができます。この権限には次の権限の両方の機能が含まれます。
- SYSUDTLIBデータベース内のすべてのUDTに対するUDTUSAGE権限。
- SYSUDTLIBデータベースに対するUDTTYPE権限。
UDTMETHOD権限を持つユーザーは、次の文と操作を実行できます。
- CREATE TYPE (メソッド シグネチャの指定あり/なし)
- DROP TYPE
- ALTER TYPE (メソッド シグネチャの追加または削除あり/なし)
- CREATE ORDERINGおよびDROP ORDERING
- CREATE CASTおよびDROP CAST
- CREATE TRANSFORMおよびDROP TRANSFORM
- CREATE TABLE (UDT列を含むテーブル)
- SQL文、UDF、またはプロシージャ内で特定のUDTを参照する
- すべてのメソッドを実行する
- CREATE METHOD、ALTER METHOD、およびREPLACE METHOD
ON句に指定するdatabase_nameはSYSUDTLIBにする必要があります。
UDTMETHODは、自動的に付与される権限ではありません。ユーザーはこの権限を、明示的に付与されるか、ALL PRIVILEGESによって取得するか、またはロールによって取得する必要があります。UDTMETHODをWITH GRANT OPTION付きで付与されたユーザーは、他のユーザーにUDTUSAGE、UDTTYPE、またはUDTMETHOD権限を付与することができ、任意にWITH GRANT OPTION付きで付与することできます。
UDTMETHODは、DBC.AccessRightsテーブルのAccessRight列に、コードUMで表わされます。
以下のGRANTリクエストは、それぞれ以下の権限を付与します。
- SYSUDTLIBに対するUDTMETHODをユーザーuser_DBAにWITH GRANT OPTION付きで付与。
- SYSUDTLIBに対するUDTMETHODをロールdeveloper_roleに付与。
GRANT UDTMETHOD ON SYSUDTLIB TO user_DBA WITH GRANT OPTION;
GRANT UDTMETHOD ON SYSUDTLIB TO developer_role;