DROP USER
目的
DROP
USER
文を使用すると、データベース・ユーザーを削除できます。また、オプションでユーザーのオブジェクトを削除することもできます。
Oracle Automatic Storage Management (Oracle ASM)クラスタでは、AS
SYSASM
と認証されたユーザーは、この句を使用して、現行のノードのOracle ASMインスタンスに対してローカルなパスワード・ファイルでユーザーを削除できます。
ユーザーを削除すると、そのユーザーのすべてのスキーマ・オブジェクトもごみ箱から消去されます。
ノート:
SYS
ユーザーまたはSYSTEM
ユーザーを削除しないでください。これらのユーザーを削除すると、データベースが破損します。
関連項目:
ユーザーの作成および変更の詳細は、「CREATE USER」および「ALTER USER」を参照してください。
前提条件
DROP
USER
システム権限が必要です。Oracle ASMクラスタでは、AS
SYSASM
と認証される必要があります。
構文
drop_user::=
セマンティクス
IF EXISTS
IF EXISTS
は、既存の索引を削除する場合に指定します。
DROP
にIF NOT EXISTS
を指定すると、ORA-11544: Incorrect IF EXISTS clause for ALTER/DROP statement
が発生します。
user
削除するユーザーを指定します。CASCADE
を指定しない場合、またはユーザーのオブジェクトを最初に明示的に削除しない場合、所有するスキーマにオブジェクトが含まれているユーザーは削除されません。
ユーザーの削除の制限事項
履歴追跡にフラッシュバック・データ・アーカイブを使用する表がスキーマに含まれているユーザーは削除できません。まず、表でのフラッシュバック・データ・アーカイブの使用を無効にする必要があります。
CASCADE
CASCADE
を指定すると、ユーザーを削除する前に、そのユーザーのスキーマ内にあるすべてのオブジェクトを削除できます。所有するスキーマにオブジェクトが含まれているユーザーを削除する場合は、必ずこの句を指定します。
-
ユーザーのスキーマに表がある場合、表が削除され、その表の主キーまたは一意キーを参照している他のユーザーのスキーマ内にある表の参照整合性制約も自動的に削除されます。
-
この句で表が削除される場合、その表の列で作成されたすべてのドメイン索引も削除され、適切な削除ルーチンが起動されます。
関連項目:
これらのルーチンの詳細は、『Oracle Databaseデータ・カートリッジ開発者ガイド』 を参照してください。
-
他のスキーマにある次のオブジェクトは削除されず、無効にされます。
-
削除されたユーザーのスキーマ内のビューまたはシノニム
-
削除されたユーザーのスキーマ内のオブジェクトを問い合せるストアド・プロシージャ、ファンクションまたはパッケージ
-
-
削除されたユーザーのスキーマ内にある表に基づく他のスキーマ内のマテリアライズド・ビューは削除されません。ただし、実表は存在しないため、他のスキーマ内のマテリアライズド・ビューはリフレッシュできなくなります。
-
ユーザーのスキーマにあるすべてのトリガーは削除されます。
-
ユーザーが作成したロールは削除されません。
-
Oracle Databaseは、ユーザーのスキーマ内のすべてのドメインを削除します。データベースは、ユーザーが所有するすべてのドメインに対して
DROP DOMAIN FORCE
を発行します。
ノート:
Oracle Databaseでは、FORCE
を使用するとユーザーが所有するすべての型が削除されます。詳細は、「DROP TYPE」の「FORCE」キーワードを参照してください。
例
データベース・ユーザーの削除: 例
ユーザーSidneyのスキーマ内にオブジェクトがない場合は、次の文を発行してsidney
を削除できます。
DROP USER sidney;
sidneyのスキーマ内にオブジェクトがある場合は、次の文のようにCASCADE
句を指定して、sidney
とそのオブジェクトを削除する必要があります。
DROP USER sidney CASCADE;