Oracleデータベースでは、各ユーザーに対して「デフォルト表領域(DEFAULT TABLESPACE)」を設定することで、そのユーザーが作成するオブジェクト(テーブルやインデックスなど)の保存先を管理できます。適切に設定することで、ストレージの分離や運用の効率化が可能になります。
この記事では、ユーザーに特定の表領域を割り当てる方法と、その確認・変更方法を解説します。
ユーザー作成時に表領域を指定する方法
ユーザーを新規作成する際に、あらかじめデフォルト表領域と一時表領域を指定しておくことで、スムーズな運用が可能になります。
CREATE USER sample_user IDENTIFIED BY password
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
この例では、「users」表領域を通常のデータ格納先、「temp」表領域を一時作業領域として割り当てています。
既存ユーザーに表領域を割り当て直す方法
すでに作成済みのユーザーに対しても、後からデフォルト表領域を変更できます。
ALTER USER sample_user DEFAULT TABLESPACE data_tbs;
この操作によって、新たに作成されるオブジェクトの格納先が「data_tbs」に変更されます。
表領域割り当て状況を確認するSQL
ユーザーごとのデフォルト表領域を確認するには、以下のSQLを実行します。
SELECT username, default_tablespace, temporary_tablespace
FROM dba_users
WHERE username = 'SAMPLE_USER';
複数ユーザーを一括で確認することもでき、運用管理上便利です。
使用可能な表領域を確認するSQL
現在データベース上に存在する表領域一覧は次のSQLで確認可能です。
SELECT tablespace_name, status, contents
FROM dba_tablespaces;
contents
列には「PERMANENT」「TEMPORARY」などの種類が表示されます。
注意点とベストプラクティス
デフォルト表領域が未設定の場合、Oracleは「SYSTEM」などのシステム表領域を使用してしまうことがあります。これは本番環境では避けるべきです。運用上の分離やパフォーマンス、バックアップ戦略の観点から、適切な表領域設計とユーザー割り当ては必須です。
まとめ
Oracleユーザーに対して適切なデフォルト表領域と一時表領域を割り当てることで、データの管理性やセキュリティ、パフォーマンスの向上につながります。新規ユーザー作成時だけでなく、既存ユーザーへの見直しも含めて、表領域の運用設計を最適化していきましょう。