UDTUSAGE権限 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ制御言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/sqd1591723147563.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1149
Product Category
Software
Teradata Vantage

UDTUSAGE権限を持つユーザーは、表またはビューにUDTを使用し、そのUDTにのみ関連付けられているすべてのメソッドを実行することができます。それらのメソッドは、UDTの作成や削除、メソッドの作成や更新や削除、あるいは順序付け、キャスト、または変換機能に関するUDTの動作の変更は行なえません。

UDTUSAGE権限はデータベース レベルまたはUDTオブジェクト レベルでのみ付与することができます。

アクセス許可のレベル UDTUSAGEを与える必要がある場所
データベース SYSUDTLIBデータベースのみ。
UDTオブジェクト UDTの名前。
特定のUDTに対してUDTUSAGE権限を持つユーザーは、次の文と操作を実行できます。
  • 特定のUDTを使用する列を含むテーブルに対しての、CREATE TABLEまたはALTER TABLE。
  • 問合わせ、UDF、またはプロシージャ内で特定のUDTを参照する。
  • 特定のUDTにのみ関連付けられているすべてのメソッドを実行する。

    その他のUDTに関連するメソッドを実行するには、それらのUDTに対するUDTUSAGE権限も必要となります。

入れ子のSTRUCTURED型UDTに関しては、権限がその親から自動的には継承されないことに注意してください。例えば、最上位レベルのSTRUCTURED型UDT属性に対するUDTUSAGEが付与されている場合には、表作成操作でその型の列を指定することができます。しかし、UDTUSAGE権限が付与されていたとしても、UDTの下位の層に含まれるすべての構造化属性に対してオブザーバー メソッドやミュテーター メソッドを使用できるわけではなく、それら下位の層の属性に対して定義されているメソッドを呼び出すこともできません。

こうした操作を可能にするには、入れ子UDT型の個々のUDTコンポーネントに対して明示的にUDTUSAGEを付与するか、またはSYSUDTLIBデータベースに対して明示的にUDTUSAGEを付与する必要があります。

UDTUSAGEは自動的に付与される権限ではありません。ユーザーはこの権限を、明示的に付与されるか、またはロールによって取得する必要があります。UDTUSAGEをWITH GRANT OPTION付きで付与されたユーザーは、他のユーザーにUDTUSAGE権限を付与することができ、任意にWITH GRANT OPTION付きで付与することもできます。

UDTUSAGEは、UUテーブルのAccessRight列にコードDBC.AccessRightsで表わされます。

ユーザーDBCには、SYSUDTLIBデータベースに対する暗黙のUDT権限があります。

それ以外のすべてのユーザーまたはロールがSYSUDTLIB内のUDTに関連するオブジェクトにアクセスする必要がある場合には、まずSYSUDTLIBに対するまたはSYSUDTLIBデータベース内の特定のUDTに対する適切なUDT権限をそれらのユーザーやロールに明示的に付与する必要があります。

以下のGRANTリクエストは、それぞれ以下の権限を付与します。
  • SYSUDTLIBデータベースに対するUDTUSAGEをユーザーtester1に付与。
  • area()という名前のUDTに対するUDTUSAGEをユーザーtester3に付与。
  • データベースSYSUDTLIB内のSYSUDTLIBという名前のUDTに対するUDTUSAGEをユーザーtester4に付与。
    GRANT UDTUSAGE
    ON SYSUDTLIB
    TO tester1;
    
    GRANT UDTUSAGE
    ON TYPE circle
    TO tester3;
    
    GRANT UDTUSAGE
    ON TYPE SYSUDTLIB.square
    TO tester4;