2017年7月28日
Oracleユーザ(SYS/SYSTEM)について書きます。
(※画像引用元:Oracle公式)
こんにちは。
自称エリート(見習い)です。
今回の内容はタイトルの通りなのですが、
まずはOracleデータベースを作成すると自動生成されるユーザの一覧を見てください。
SYS | データベース管理者アカウント |
SYSTEM | データベース管理者アカウント |
SYSMAN | OEM(Oracle Entereprise Manager)の管理ユーザ |
DBSNMP | OEMの内部ユーザ |
・・・。
SYS/SYSTEMユーザが同じデータベースの管理者アカウントであることに違和感を抱きませんか。抱きます。
(他のユーザに関してはよく知らなくても字面から全然役割が違うことは判ると思うので今回は割愛します。)
今回は掲題の通り、
SYSとSYSTEMの一体何が違うのかというあたりを解説していきたいと思います。
上の表では違いについて言葉が足りていないので、
改めてそれぞれの役割を説明します。
SYS |
データベース管理者アカウント。 データベースの管理情報を格納するデータディクショナリのすべての実表とビューを所有する。 |
SYSTEM |
データベース管理者アカウント。 管理情報を表示する表やビュー、Oracleデータベースのオプションやツールで使用する内部的な表やビューを所有する。 |
なんとなくユーザの上下関係として、
SYS > SYSTEM
であることが見えてきました。
それではそれぞれの使い分けについて具体的に見ていきます。
■SYSユーザ
「SYS」に「SYSDBA」または「SYSOPER」のシステム権限を使用することを前提にログインし,
以下の操作を行う場合に使用する。
「SYSDBA」
・データベースの作成/削除
・データベースのリカバリ
「SYSOPER」
・インスタンスの起動/停止
・データベースのオープン/マウント
・制御ファイルのバックアップ
■SYSTEMユーザ
上記を除いたユーザ作成等のデータベース操作を行う場合に使用する。
システム権限は使用しない。
SYSはLinuxでいうrootのようなもので、
重要な操作を行う場合にのみ使用します。
一方、SYSTEMは通常の操作を行う場合に使用することが多いです。
いかがでしたでしょうか。
今回の記事は以上になります。
また何か勉強になったことがあれば投稿していきたいと思います。