TRANSFER OWNERSHIP

TRANSFER OWNERSHIP ステートメントは、データベース・オブジェクトの所有権を転送します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むことも、 あるいは対話式に実行することもできます。 これは、動的に準備できる実行可能ステートメントです。

権限

表、ビュー、または索引の所有権を 移動するには、ステートメントの権限 ID は対象のオブジェクトの所有者でなければならず、 保持する特権には少なくとも次の 1 つが含まれていなければなりません。

  • 次のシステム権限
    • 転送したいオブジェクトについての *OBJOPR および *OBJEXIST システ ム権限。
    • 転送したいオブジェクトが入っているライブラリーについての *EXECUTE システム権限。
  • データベース管理者権限
  • セキュリティー管理者権限

SQL 特権に対応するシステム権限については、『表またはビューへの権限を検査する際の対応するシステム権限』を参照してください。

構文

構文図を読む構文図をスキップする
                                                         .-REVOKE PRIVILEGES---.   
>>-TRANSFER OWNERSHIP OF--| object |--TO--| new-owner |--+---------------------+-><
                                                         '-PRESERVE PRIVILEGES-'   

構文図を読む構文図をスキップする
 オブジェクト

|--+-INDEX--index-name-+----------------------------------------|
   +-TABLE--table-name-+   
   '-VIEW--view-name---'   

構文図を読む構文図をスキップする
new-owner

|--+-USER--authorization-name-+---------------------------------|
   +-+-CURRENT USER-+---------+   
   | '-CURRENT_USER-'         |   
   +-+-SESSION_USER-+---------+   
   | '-USER---------'         |   
   '-SYSTEM_USER--------------'   

説明

INDEX index-name
所有権を転送する索引を指定します。この索引名 は、現行サーバーに存在している索引を示すものでなければなりません。
TABLE table-name
所有権を転送する表を指定します。表名 は、 現行サーバーに存在している基本表を示していなければなりませんが、 宣言されたグローバル一時表またはカタログ表を示すものであってはなりません。
VIEW view-name
所有権を転送するビューを指定します。このビュー名 は、現行サーバーに存在しているビューを識別していなければなりませんが、 カタログ・ビューを識別するものであってはなりません。
USER authorization-name
オブジェクトの所有権の転送先となる許可 ID を指定します。
CURRENT USER または CURRENT_USER
CURRENT USER 特殊レジスターの値を、オブジェクトの所有権の転送先となる許可 ID として使用することを指定します。
SESSION_USER または USER
SESSION_USER 特殊レジスターの値を、オブジェクトの所有権の転送先となる許可 ID として使用することを指定します。
SYSTEM_USER
SYSTEM_USER 特殊レジスターの値を、オブジェクトの所有権の転送先となる許可 ID として使用することを指定します。
REVOKE PRIVILEGES または PRESERVE PRIVILEGES
所有権が転送された後の、オブジェクトの現行所有者の特権を指定します。
REVOKE PRIVILEGES
現行所有者は転送完了後はオブジェクトに対する明示的な特権を何も保有しなくなることを 指定します。
PRESERVE PRIVILEGES
所有権を転送するオブジェクトの現行所有者が、転送後もオブジェクトに対する既存の特権を引き続き保持することを指定します。 例えば、ビューの作成者に付与された特権 は、所有権が別のユーザーに譲渡された後でも、元の所有者によって引き続き 保持されます。

規則

大部分のシステム定義オブジェクトの所有権は 譲渡できません。

名前が「SYS」または「Q」で始まる スキーマ内のオブジェクトの所有権は譲渡できません。

セキュリティー管理者権限を持つ 権限 ID は、まだオブジェクトの所有者ではない場合はオブジェクトの所有権を自分自身に譲渡することはできません。

注意

  • 現行所有者がオブジェクトに対して保有しているすべての特権が新規所有者に譲渡されます。
  • データベース・オブジェクトの所有権を譲渡する場合、新規所有者 はそのオブジェクトに従属するものに対する特権を必ずしも保有するとは限りません。
  • オブジェクトの所有権をその所有者に譲渡しようとする場合、警告が戻されます。

例 1: 表 T1 の所有権を PAUL に転送します。

TRANSFER OWNERSHIP OF TABLE WALID.T1
     TO USER PAUL PRESERVE PRIVILEGES   
Paul は 表 WALID.T1 の所有者になり、この表の元の所有者が持っていたすべての特権を 付与されます。前の所有者もすべての特権を保持し続けます。

例 2: ビュー V1 の所有権を HENRY に譲渡し、前の所有者から特権を除去します。

   TRANSFER OWNERSHIP OF VIEW V1
     TO USER HENRY 
Henry はビュー V1 の 所有者になり、このビューの元の所有者が持っていたすべての特権を 付与されます。前の所有者は、このビューに対する明示的な特権を何も持たなくなります。