読者です 読者をやめる 読者になる 読者になる

高卒からSEそしてITコンサルになるまで

筆者はIT業界に従事しています。その中での備忘録や資格受験、夢に向かう中でのことを書いていきます。

「sys」と「sysdba」の違い

Oracle 12cを勉強中なので、タイトルを基に記述。

というか、「sys」と「sysdba」の違いが気になった。

 

Oracleデータベースを作成すると必ず作られるこの2つ。

 

何が違うのか。

 

  • sys

  データベース管理者アカウント。

  データベースの管理情報を格納するデータディクショナリのすべての実表とビューを所有する。

 

  • system

  データベース管理者アカウント。

  管理情報を表示する表やビュー、Oracleデータベースのオプションやツールで使用する内部的な表やビューを所有する。

 

うーん。。具体的には結局わからない。

 

さらに追加

  • sys

  DBAロール(USER、ALL、DBAの順で大きい)が付与されている。

  SYSDBA権限が付与されている。

  すべての管理機能を実行可能

 

  • system

  DBAロールが付与されている。

  さらに以下を除いたすべての管理機能を実行可能

   ⇒バックアップとリカバリ

   ⇒データベースアップグレード

 

これもわかりそうでまだスッキリしない。。

 

が、とどのつまり、

権限の括り具合としては

sys>>>>>system

ってことだろう。

また、

sys

 ⇒SYSDBA権限(インスタンス管理権限+データベース内部の管理権限)

  というのはデータベースの起動・停止とか

  データベースの外側からいじくれる

のに対して、

system

 ⇒DBA権限(データベース内部の管理権限)

  というのはデータベースの起動・停止とかできないけど、

  データベースの中側はいじくれるよ

ってことだろうと解釈。

 

そのため、sqlplusなんかで接続するときは

sysは「as sysdba」をつけなきゃなんない。

なぜかっていうと、

「as sysdba」

が付加されていることによって、

OS認証されているから。

OSグループの「dbaグループ」または「operグループ」(LINUX,UNIXでね)

Windowsなら「ORA_DBAグループ」または「ORA_OPERグループ」

に所属しているかどうかはデータベース外部でしかわからない。

そんでもって外部で認証できなければ、データベースの起動も停止もできない。

 

あとOS認証だけでなくて、パスワードファイル認証ってのもあるらしい。

パスワードファイルというファイルが存在していて、それに登録されているか

確認されてSYSDBA権限が付与されるとかなんとか。。

ちなみに

OS認証

 ⇒CONNECT /AS SYSDBA

パスワードファイル認証

 ⇒CONNECT ユーザ名/パスワード AS SYSDBA

と入力!

 

最後に簡単に言うと、

sysが一番強くて

systemはsysより弱いってこと。

あと接続時に「as sysdba」忘れるべからずってこと。

 

【追記】

sqlplusでは

sqlplus /nologでsqlplusをとりあえず接続できる。

そのあとは

connect ユーザ名/パスワード

または

conn ユーザ名/パスワード

で接続。

disconnectまたはdisconnで接続解除できる。

※quitだとsqlplus自体、終了してしまう。