Oracle初心者である自分がユーザーについて理解するために整理してみました。
ユーザー
データベースにアクセスするためのアカウントのこと
各ユーザーには、特定の権限や役割が与えられ、データベース内のデータに対する操作が制御される
スーパーユーザー
データベース内で特別な権限を持つユーザーのこと
主に以下の2つのユーザーがスーパーユーザーとして機能している
SYS
Oracleデータベースの管理や設定を行うための最も強力なユーザー
すべてのシステム権限を持ち、データベースの内部構造に直接アクセス可能
(データベースの作成、削除、ユーザーの管理、バックアップなど、すべての管理作業が可能)
SYSTEM
一般的なデータベース管理作業を行うためのユーザー
アプリケーションユーザーの管理など、日常的な管理作業に使用される
(ユーザーの管理やロールの設定、権限の付与などが可能)
またスーパーユーザー以外では一般ユーザーがある
一般ユーザー
特定の権限を持ち、データベース内のオブジェクト(テーブルやビューなど)にアクセスできるアカウントのこと
スーパーユーザーとは異なり、通常は限られた権限しか持っていない
スキーマ
データベースオブジェクト(テーブル、ビュー、インデックスなど)を整理するため名前空間のこと
スキーマは特定のユーザーが持つデータベースオブジェクトの集合を指す
(所有者の明確化と他のユーザーからのアクセスを制御することが目的)
例えば、上記の構成の場合、テーブル(BBB)の完全修飾名は AAA.BBB となる
権限
Oracle の権限については、下記 2種類ある
システム権限
データベース全体に対する権限 (SYS、SYSTEMユーザーが所持)
例 ) データベースオブジェクトの作成、変更、削除など
オブジェクト権限
スキーマオブジェクトに対する権限
※下記に代表的な権限を記載
ロール
特定の権限をグループ化して管理するための機能
システム権限やオブジェクト権限を組み合わせて作成する
デフォルトで存在するロール(事前定義済みロール)
- CONNECTロール:データベースに接続するためのロール
- DBAロール:データベースの管理に必要な権限をまとめたロール
※参考
- 「図解入門よくわかる 最新Oracleデータベースの基本と仕組み」(秀和システム)
- 今さら聞けない!? Oracle入門~アーキテクチャ編~