Oracle Databaseにおけるユーザー管理は、セキュリティ・権限制御・リソース制限において非常に重要な役割を担います。
本記事では、CREATE USER文の基本から、表領域・クォータ・権限付与・ロック制御に至るまで、実務に耐えうるレベルで徹底的に解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
🔰 ユーザーとは何か?基本概念
Oracleにおける「ユーザー」は、スキーマオブジェクト(テーブル、ビュー等)の所有者であり、データベースにアクセスするアカウントです。
📘【図解】Oracleのユーザーとスキーマの関係
ユーザー = スキーマオーナー
└── テーブル (EMP, DEPT, etc.)
└── インデックス
└── ビュー
└── シノニム
つまり、ユーザー作成=スキーマの土台を構築することになります。
🧱 CREATE USER の基本構文と要素
CREATE USER ユーザー名
IDENTIFIED BY パスワード
DEFAULT TABLESPACE 表領域
TEMPORARY TABLESPACE 一時表領域;
✅ 最小構成の例
CREATE USER test_user IDENTIFIED BY StrongP@ss1;
※この時点では接続できません。
CREATE SESSION権限などの付与が必要です。
📦 表領域(TABLESPACE)の指定
Oracleでは、ユーザーがデータを保存する領域(表領域)を明示的に指定するのがベストプラクティスです。
CREATE USER test_user
IDENTIFIED BY StrongP@ss1
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
📘【図解】表領域とユーザーの関係
ユーザー test_user
├─ DEFAULT TABLESPACE → USERS
└─ TEMPORARY TABLESPACE → TEMP
📊 クォータ(QUOTA)指定
表領域の使用制限を設定しないと、オブジェクトの作成に失敗します。
ALTER USER test_user QUOTA UNLIMITED ON users;
または、
ALTER USER test_user QUOTA 100M ON users;
- UNLIMITED:無制限
- 100M:最大100MBまで利用可能
🔐 権限付与(GRANT)
Oracleでは、ユーザー作成後に最低限の権限を付与しないと、ログインや操作ができません。
GRANT CREATE SESSION TO test_user;
GRANT CREATE TABLE TO test_user;
もしくは便利なロールを使用することもあります:
GRANT CONNECT, RESOURCE TO test_user;
| ロール | 主な内容 |
|---|---|
| CONNECT | CREATE SESSION などログイン用 |
| RESOURCE | CREATE TABLE など開発者向けの操作権限 |
※11g以降ではRESOURCEロールの利用には注意が必要です。不要な権限も含まれるため、明示的なGRANTを推奨します。
🔄 アカウント制御(ロック・有効化・パスワード制御)
✅ アカウントロック/有効化
ALTER USER test_user ACCOUNT LOCK;
ALTER USER test_user ACCOUNT UNLOCK;
✅ パスワードの有効期限を強制
ALTER USER test_user PASSWORD EXPIRE;
→ 初回ログイン時にパスワード変更を要求する用途
✅ プロファイルでセキュリティ制御
ALTER PROFILE DEFAULT LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LIFE_TIME 90;
→ 5回失敗でロック、90日でパスワード期限切れ
❌ DROP USER(ユーザー削除)
ユーザーを削除するには、以下のコマンドを使用します。
DROP USER test_user CASCADE;
CASCADEを付けることで、ユーザーが所有するテーブルなどのオブジェクトも一緒に削除されます。- 付けないと「オブジェクトが残っているため削除できません」というエラーになります。
🔄 全体フロー図
1. CREATE USER
↓
2. ALTER USER で QUOTA 設定
↓
3. GRANT 権限付与
↓
4. パスワード/ロック制御(必要に応じて)
↓
5. ユーザー使用開始
↓
6. 不要になったら DROP USER CASCADE
✅ まとめ:実務で押さえるべきポイント
| 項目 | 内容 |
|---|---|
| CREATE USER | アカウントの作成(IDENTIFIED BY必須) |
| 表領域・一時表領域 | 必ず明示的に指定する(省略時のデフォルトに注意) |
| クォータ | 明示しないとINSERT等が失敗する |
| 権限 | CONNECT, RESOURCE または明示的な権限のGRANT |
| パスワード制御 | PASSWORD EXPIRE や PROFILE による管理 |
| セキュリティベストプラクティス | 最小権限・表領域の分離・ログ監査などの実装 |
🎓 こんな人におすすめの記事でした
- Oracle初心者で初めてユーザー作成する方
- 実務で複数アカウント管理を行っているDB管理者
- セキュリティポリシーに準拠したユーザー設計を求められている担当者
参考資料
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?




コメント