【Oracle】ユーザーの作成方法をわかりやすく解説

【Oracle】ユーザーの作成方法をわかりやすく解説

※ この記事にはアフィリエイトリンクが含まれます

Oracleを利用していると、システム管理や開発環境の準備の中で「新しいユーザーを作成する」作業は避けて通れません。ユーザーを作成することで、それぞれに権限を割り当てたり、スキーマを分けて管理したりと、セキュリティや運用効率を高めることができます。

しかし、初めてOracleを触る方にとっては「ユーザーとスキーマの違いは?」「権限の付与はどうすればいいの?」といった疑問が出てきやすい部分です。

本記事では、Oracleにおけるユーザー作成の基本から、実際のSQLコマンド例、そして権限設定のポイントまでをわかりやすく解説していきます。これからOracleを学習する方はもちろん、日々の業務でDB管理に携わる方にとっても役立つ内容ですので、ぜひ最後までご覧ください。

目次

ユーザーとスキーマの関係

Oracleにおけるユーザースキーマは、密接に結びついた存在です。

  • ユーザー:データベースにログインするためのアカウントを指します。
  • スキーマ:ユーザーが所有するデータベースオブジェクト(テーブル、ビュー、シーケンスなど)の集合を指します。

つまり、Oracleでは「ユーザーを作成すると、そのユーザーに対応するスキーマが自動的に作成される」仕組みになっています。例えば、USER_A というユーザーを作成すれば、そのユーザーが所有するスキーマも同名のUSER_A となり、そこで管理されるオブジェクトがひとまとまりになります。

この関係を理解しておくと、複数のアプリケーションやチームで同じデータベースを利用する場合でも、スキーマごとにきちんとデータを分けて管理できるため、運用がスムーズになります。

ユーザー作成の前提条件(権限や環境準備)

Oracleで新しいユーザーを作成するためには、あらかじめ管理者権限を持つユーザーで接続している必要があります。一般的には以下のような権限や準備が求められます。

1. 管理者権限を持つユーザーでログインする

  • SYSDBA またはSYSTEM ユーザーで接続するのが一般的です。
sqlplus system/password@ORCL

2. CREATE USER権限

  • 新しいユーザーを作成するには、CREATE USER 権限が必要です。
  • 通常は管理者ユーザーが持っています。

3. デフォルト表領域の確認

  • ユーザーがデータを格納するために、あらかじめ表領域が準備されている必要があります。
  • 特に業務システムでは、ユーザーごとに専用の表領域を割り当てることが推奨されます。

4. 一時表領域の確認

  • ソート処理や一時的なデータ操作のために、一時表領域を利用できるように設定しておく必要があります。

ユーザー作成の基本構文

Oracleで新しいユーザーを作成するには、CREATE USER 文を利用します。基本的な構文は以下の通りです。

CREATE USER ユーザー名 IDENTIFIED BY パスワード
  DEFAULT TABLESPACE 表領域名
  TEMPORARY TABLESPACE 一時表領域名;

構文のポイント

  • ユーザー名
    作成するユーザーの名前を指定します。通常は大文字で管理されます。
  • IDENTIFIED BY パスワード
    ユーザーの認証に使うパスワードを指定します。
  • DEFAULT TABLESPACE
    ユーザーがデータを保存する際に使用するデフォルトの表領域を指定します。
  • TEMPORARY TABLESPACE
    ソートや一時的な処理に利用される一時表領域を指定します。

例:ユーザー「APP_USER」を作成する場合

CREATE USER APP_USER IDENTIFIED BY app_password
  DEFAULT TABLESPACE USERS
  TEMPORARY TABLESPACE TEMP;

この例では、

  • ユーザー名:APP_USER
  • パスワード:app_password
  • デフォルト表領域:USERS
  • 一時表領域:TEMP

    を設定しています。

権限付与(GRANT)の方法

ユーザーを作成しただけでは、そのユーザーはまだデータベースに接続したり、テーブルを作成したりすることができません。

実際に操作できるようにするためには、権限を付与(GRANT)する必要があります。

代表的な権限

  • CREATE SESSION
    データベースに接続するための基本権限。
  • CREATE TABLE
    テーブルを作成できる権限。
  • CREATE VIEW / CREATE SEQUENCE / CREATE PROCEDURE
    ビュー、シーケンス、ストアドプロシージャなどを作成するための権限。
  • UNLIMITED TABLESPACE
    割り当てられた表領域の制限を超えて使用できる権限。

基本的な権限付与の例

GRANT CREATE SESSION TO APP_USER;

このコマンドにより、APP_USER ユーザーはデータベースに接続できるようになります。

複数の権限をまとめて付与する例

GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW TO APP_USER;

実務でよく使う例

GRANT CONNECT, RESOURCE TO APP_USER;
  • CONNECT ロールには、基本的な接続やオブジェクト作成に必要な権限が含まれています。
  • RESOURCE ロールには、テーブルやシーケンスなどの作成権限がまとまっています。

※ ただし最近のバージョンでは、CONNECTRESOURCE に含まれる権限が見直されているため、必要に応じて個別に権限を付与する方法が推奨されています。

作成したユーザーの確認方法

ユーザーを作成し、権限を付与した後は、設定が正しく反映されているかを確認することが重要です。Oracleには豊富なディクショナリビューが用意されており、これを利用することでユーザーや権限の状態を確認できます。

ユーザー一覧の確認

SELECT username, account_status, default_tablespace, temporary_tablespace
FROM dba_users
WHERE username = 'APP_USER';
  • ACCOUNT_STATUSOPEN になっていれば、ユーザーは有効です。
  • DEFAULT_TABLESPACETEMPORARY_TABLESPACE が意図通りになっているかを確認できます。

権限の確認

ユーザーに付与されたシステム権限を確認するには以下を実行します。

SELECT * FROM dba_sys_privs WHERE grantee = 'APP_USER';

ロールが付与されているかを確認するには以下を実行します。

SELECT * FROM dba_role_privs WHERE grantee = 'APP_USER';

まとめ

今回は Oracleでユーザーを作成する方法 を解説しました。

流れを振り返ると、

  1. 管理者ユーザーで接続する(前提条件の確認)
  2. CREATE USER 文を使ってユーザーを作成
  3. GRANT 文で必要な権限を付与

という手順で進めれば、新しいユーザーを安全に作成することができます。

Oracleの運用は、ユーザー管理を正しく行うことでセキュリティを確保し、システムの安定稼働にもつながります。基礎的な知識をしっかり身につけておくことが大切です。

学習に役立つおすすめ書籍

ユーザー作成の手法を理解したら、さらに一歩進んで実務で役立つ知識を身につけたいところです。ここでは、Oracleを効率的に学べるおすすめ書籍を紹介します。

図解入門よくわかる 最新Oracleデータベースの基本と仕組み

図解で解説されている箇所が多く、初心者が全体像を理解するのに最適です。

Oracleの現場を効率化する100の技

初心者からベテランまで、経験レベルを問わず活用できる一冊で、Oracle Databaseユーザー必携の実践書 といえます。
忙しい現場でも、効率的に学びながら実践できる点が魅力。


こうした書籍を手元に置いて、環境構築と並行して学ぶことで理解が一層深まります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

沖縄出身のエンジニアです。IT業界で5年以上の経験があり、主にC#やPHPを使って開発を行ってきました。新しい技術にも興味があり、日々学びながらスキルアップを目指しています。

コメント

コメントする

CAPTCHA


目次