Oracle基礎(ユーザ・スキーマ)

Published by

on

Oracleを利用する際に登場する「ユーザ」と「スキーマ」について整理します。

▼Oracleの「ユーザ」とは

ユーザはOracleデータベースを利用する利用者としてユーザ名・パスワードを用いて識別するためにあります。ユーザは認証(利用者が誰であるかを確認)と認可(操作の許可があるかを確認)を行うために必要となります。またユーザはテーブルや索引の所有者となり、権限を付与する単位ともなります。

▼Oracleの「スキーマ」とは

Oracleを操作する中で登場するキーワード「スキーマ」は、テーブル、インデックスなど(以降オブジェクトと呼びます)を含む論理的なコンテナで、データを実際に格納している「表領域」とは異なるものです。

ユーザを作成すると同名のスキーマが作成されます。スキーマが異なれば同じ名前のテーブルは異なるものとして識別され、(権限があれば)別のスキーマのオブジェクトを参照することもできます。プログラミングを行った経験があればわかるかもしれませんがいわゆる名前空間のような役割と考えるとわかりやすいかもしれません。

下記の図でいくと、「APP01」ユーザは同名の「APP01」スキーマを所有します。「APP02」ユーザは「APP02」スキーマ内に「商品マスタ」や「得意先マスタ」のような同名のテーブルオブジェクトを定義することができます。仮にAPP01ユーザがAPP02スキーマへアクセスする権限が定義されている場合、APP02の商品マスタを参照するには「APP02.商品マスタ」という記述でアクセスできます。

▼ユーザのプロパティ

ユーザ名やパスワードはもちろんのこと、他記事(下記リンク参照)にも記載したようにデフォルト表領域、デフォルト一時表領域やユーザプロファイルといったプロパティ(属性)、表領域の利用割り当て制限(クォータ)が存在します。ここでは詳細には触れませんが、ユーザプロファイルでは同時接続セッション数を定義するなど、リソースへのアクセスの制限が行えます。

▼Oracleのデフォルトユーザ

ユーザ名メモ
SYSOracleの起動停止が行える、特殊な権限である「SYSDBA」権限を持つユーザ。Oracle上のすべての操作が可能なスーパーユーザ。
SYSTEM特殊な権限の「SYSDBA」権限、「SYSOPER」権限が必要な操作を除くほとんどの操作が可能なユーザ。

▼特殊な権限:SYSDBA権限

「SYSDBA」権限はその名のとおり、「SYStem DB Administrator」としてOracleデータベースのすべての操作が行えます。すべての操作にはOracleの起動・停止、作成、バックアップ・リカバリなどを含みます。SYSDBA権限があれば、Oracleインスタンスが停止していても接続することが可能です。

コメントを残す