ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
はじめに
Oracle のユーザーはスキーマと一対一で、ユーザーを削除するとそのスキーマに属する表・ビュー・索引・PL/SQL もまとめて影響を受けます。本番環境では誤操作が致命傷になりやすい操作なので、構文だけでなく前提条件・影響範囲を理解しておきましょう。
基本構文
DROP USER ユーザー名 [CASCADE];
| オプション | 意味 |
|---|---|
| なし | スキーマオブジェクトがある場合はエラーで停止 |
CASCADE | スキーマ内の全オブジェクト(表・ビュー・索引・PL/SQL など)も一緒に削除 |
基本例
-- オブジェクトを持たないユーザーをそのまま削除
DROP USER test_user;
-- 表などを保有しているユーザーは CASCADE 必須
DROP USER app_user CASCADE;
必要な権限
DROP USERシステム権限(DBA ロールに含まれる)- 自分自身のユーザーは削除不可(接続中のため)
- SYS / SYSTEM のようなシステム予約ユーザーは削除禁止
-- DBA ロールで接続して実行
SQL> CONNECT sys/password AS SYSDBA;
SQL> DROP USER app_user CASCADE;
接続中ユーザーの扱い
削除しようとしたユーザーで誰かが接続していると ORA-01940: cannot drop a user that is currently connected が出ます。次の手順で対処します。
-- 1) 接続セッションを確認
SELECT sid, serial#, username, status, program
FROM v$session
WHERE username = 'APP_USER';
-- 2) セッションを切断(sid, serial# は前の結果から)
ALTER SYSTEM KILL SESSION '123,456' IMMEDIATE;
-- 3) 念のためアカウントをロックしておく
ALTER USER app_user ACCOUNT LOCK;
-- 4) 改めて削除
DROP USER app_user CASCADE;
CASCADE で削除されるもの
| 対象 | 備考 |
|---|---|
| 表 / ビュー / マテリアライズドビュー | 当該スキーマのもの全て |
| 索引 / シーケンス / シノニム | 同上 |
| PL/SQL(プロシージャ / 関数 / パッケージ) | 同上 |
| トリガー | 同上 |
| 表領域上の物理データ | 領域は表領域に返却される |
| 外部から参照しているビュー / シノニム | 無効化(INVALID)になる |
| 外部から参照している外部キー | 削除されない、エラーになる場合あり |
削除対象スキーマの表を、他スキーマの外部キーが参照している場合は CASCADE でも自動解決できないことがあります。事前に依存関係を調査してください。
-- 他スキーマからの参照を調査
SELECT owner, constraint_name, table_name, r_owner, r_constraint_name
FROM dba_constraints
WHERE constraint_type = 'R'
AND r_owner = 'APP_USER';
削除前の安全チェック
- 該当ユーザーがアプリで使われていないか、接続情報(tnsnames・接続文字列)を grep
v$sessionで接続セッションがないか確認- スキーマ内オブジェクト一覧をエクスポート(
expdp)してバックアップ - 他スキーマからの参照(外部キー・ビュー・シノニム)を調査
- 本番ならアカウントロック → 一定期間放置 → 削除の二段階で進める
-- ステップ 1: アカウントロックで利用停止
ALTER USER app_user ACCOUNT LOCK;
-- 数日〜数週間運用して問題なし → ステップ 2 で削除
DROP USER app_user CASCADE;
表領域とユーザー削除の関係
ユーザーを削除しても表領域(TABLESPACE)自体は残ります。ユーザーが使用していたセグメントは解放され、表領域内の空き領域として再利用可能になります。表領域も削除したい場合は、別途 DROP TABLESPACE 文が必要です。
-- ユーザー削除後に、不要になった表領域も削除
DROP TABLESPACE app_data INCLUDING CONTENTS AND DATAFILES;
他 DBMS との比較
| DBMS | 構文 | 備考 |
|---|---|---|
| Oracle | DROP USER ユーザー名 [CASCADE] | スキーマと一体 |
| MySQL | DROP USER 'user'@'host' | 所有オブジェクトは別途削除が必要 |
| PostgreSQL | DROP USER ユーザー名 / DROP ROLE | 所有オブジェクトがあるとエラー、REASSIGN OWNED BY や DROP OWNED BY で前処理 |
| SQL Server | DROP USER ユーザー名; + DROP LOGIN ログイン名; | ユーザーとログインを分けて削除 |
よくあるトラブル
| エラー | 原因 / 対処 |
|---|---|
ORA-01922: CASCADE must be specified to drop ... | オブジェクトが残っている。CASCADE を付与 |
ORA-01940: cannot drop a user that is currently connected | 接続中。ALTER SYSTEM KILL SESSION で切断 |
ORA-01031: insufficient privileges | DROP USER 権限がない。DBA ロールを持つ管理者で実行 |
ORA-02429: cannot drop index used for enforcement of unique/primary key | 他スキーマから参照される一意制約がある。先に参照側の外部キーを削除 |
| 削除後にビューが INVALID | 他スキーマのビューが参照していた。ALTER VIEW ... COMPILE で再コンパイル不能なら作り直し |
関連
- ユーザー関連 — 親カテゴリ
- CREATE USER — ユーザー作成
- ALTER USER — パスワード変更・アカウントロック
- GRANT / REVOKE — 権限付与・剥奪
- DROP TABLESPACE — 表領域削除
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?