• ベストアンサー
  • 暇なときにでも

オラクルのユーザ、ロール、権限の位置づけについて

オラクルブロンズ取得を目指して勉強しています。とても基本的なことで、いまいち分からないことがあるのですが・・・以下のユーザ、ロール、権限、表領域とも呼べるべきものの位置付けがはっきりしません。 ・SYS ・SYSTEM ・SYSAUX ・SYSDBA ・SYSMAN ・SYSOPER ・DBA DBAなんかはまるでユーザかのように書かれているあいまいな参考書もあり、初心者には混乱の元です。そこで整理してみたんですが、以下のような感じで間違いないでしょうか? ●表領域:SYS、SYSTEM、SYSAUX ●ユーザ:SYS、SYSTEM、SYSMAN ●スキーマ:SYS、SYSTEM、SYSMAN ●権限:SYSDBA、SYSOPER、DBA ●ロール:SYSDBA、SYSOPER、DBA

共感・応援の気持ちを伝えよう!

  • Oracle
  • 回答数2
  • 閲覧数1915
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

 用語が混同し始めると、混乱しますよね。  基本的には、あなたが整理された分類であってますよ。  DBAという用語に関しては、一般的にデータベースで言われる汎用的な用語と、オラクルデータベースにおける用語で少々意味合いが違います。これは、混乱の元になることもありますね。  データベース一般において、DBAという用語は、database admonistorator(綴りあってるかな?=^・・;=)の略で、直訳すれば、データベース管理者となります。意味も、直訳の通りです。データベースを管理する立場にあるユーザー(または、ユーザーグループ)を指します。  オラクルにおけるDBAと言う用語には、DBAロールの意味があります。これは、ロールの一つです。 データベース管理者にとって必要なシステム権限をパッケージしたデフォルトのロールの一つです。  SYSDBAとSYSOPERは厳密にはロールではありません。れっきとした独立したシステム権限です。  オラクルデータベースは、スキーマとユーザの区別は元々曖昧な扱いをされているので、まぁこの区別はあまりこだわらなくても、問題は起こらないと思います。システムの資源を考えるときはスキーマ、使う人を考えるときはユーザ・・・でも、その指す実態はほぼ同じでも差し支えないかと思います。  デフォルトの表領域名がユーザ名と同じという、デフォルトのスキーマが多数存在するので、同じ言葉がそこら中に散見される事態になりますが、前後の文脈で区別していくよりありません。まぁ、これはしかたがないということで・・・。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました! よく分かりました。 参考にさせていただきます!

その他の回答 (1)

  • 回答No.2
  • entree
  • ベストアンサー率55% (405/735)

No.1 の方が既に説明されていますので、私の方で 挙げられた項目を分類しますと、こんな感じになります。 ●表領域:SYSTEM、SYSAUX ●ユーザ:SYS、SYSTEM、SYSMAN ●スキーマ:SYS、SYSTEM、SYSMAN ●権限:SYSDBA、SYSOPER ●ロール:DBA

共感・感謝の気持ちを伝えよう!

質問者からのお礼

なるほど、若干違ってましたね・・・ ありがとうございました! なんでこういうことを参考書は書かないのでしょうかね・・・

関連するQ&A

  • オラクル ブロンズ DBA11gの勉強で

    オラクルブロンズDBA11gの勉強をしております。 テキスト通りにOracleの操作をしているのですが、つまづいてしまいました。 DatabaseControlからデータベースの優先資格証明がおこなえないのです。 SYSDBAユーザ:SYS SYSDBAパスワード:Oracleインストール時に設定してSYSのパスワード ホストユーザ名:ログインしているユーザ ホストパスワード:ログインしているユーザのパスワード を入力してテストボタンを押すのですが、「ユーザー○○○としての○○○への接続に失敗しました」 とのエラーメッセージが表示されています。 ログインしているユーザはAdministartorsとora_dbaのグループに所属しています。 なにが問題なのか全くわからない状態です。 どうか教えてください。

  • ロール(オブジェクト権限)について

    オラクルのパージョンは「9.2.0.1.0」です。 オブジェクト権限を指定したロールをパッケージから参照する事はできないのでしょうか。 対象のスキーマにはオブジェクト権限を指定したロールを付与していますがパッケージで下記のエラーが発生して困っています。 「ORA-00942: 表またはビューが存在しません。」 どのようにすればいいのか、恥ずかしながらわかりません。 どなたかご教授お願いできませんでしょうか。 些細な事でも構いませんので宜しくお願いします。

  • Oracle 参照用ユーザー作成

    Oracle 9i で新規で参照専用のユーザーを作成しています。 が、うまく作成できなかったため質問したいと思います。 現在、下記のようなデータベース、ユーザー名となっています。 データベース :A ユーザー :A これに対して、以下のユーザーを作成しました。 ユーザー :B ロール :CONNECT システム権限 :select any table execute any procedure この状態で、データベースAに対してユーザーBへ接続はできますが、 SELECT文を実行しても、”ORA-00942:表またはビューが存在しません”メッセージが表示されます。 そこで、BのロールをDBAにしたり、オブジェクト権限に、データベースAの表に対して 使用可能な権限としてSELECTを指定したりしたのですが、やはり同様のメッセージが表示されました。 データベースAの表を見れていない状況だと思うのですが、どのように、Aの表を参照するよう 設定してやるのかがわかりません。 何が不足しているのかご教授下さい。 よろしくお願い致します。

  • Oracleエラー(権限の関係?)

    <環境>マシン:IBM RX6000 OS:AIX Ver.4.3 DB:ORACLE(Ver.8.1.6) 上記環境で、急にCREATEができなくなりました。 (1)ORA-01536: 表領域 TABLESPACE1に対して割り当てられた領域を使い果たしました。 というエラーが出たのですが、 空き領域を整理し、データファイルを新しく割り付けた後も同様のエラーが 発生しました。 それまでの処理は、 2)AユーザからテーブルデータEXPORT後BユーザへIMPORT ※※補足※※ Aユーザのロール:CONNECT、DBA Bユーザのロール:CONNECT、RESOURCE だったのですが、この状態だとBにIMPORTできない ため、 IMPORT前にBにDBAロールを追加、IMPORT後に削除 3)SQL*Loader実行すると、 エラーコード-2 STDERRに関する何かのエラーが出、 (↑ログが残っていないため詳細不明) その後、再度SQL*Loaderを実行しても、 (1)のエラーが発生して処理終了 4)Bユーザに関して、TABLESPACE1に関しても、その他 のTABLESPACE(TABLESPACE2)に関しても、CREATE不可 INSERTも件数が多いと途中で(1)のエラー発生 ※※補足※※ Aユーザに関しては、TABLESPACE2にはCREATE可能 (TABLESPACE1はテスト未) 最終的には、BユーザにDBAロールを追加して、 実行可能になったのですが、元々はDBAロールを持たせずに 処理できていたので、原因が分かりません。 EXPORT&IMPORT時に「権限をIMPORTするか?>Yes」を選択 したことや、DBAロールを追加&削除したことが影響するので しょうか? ただ、最近Oracleサーバの調子が悪かったため、その影響も あるかもしれません。 全く原因が分かりませんので、心当たりのある方、 よろしくお願いします。

  • Sqlplusでの接続に関して

    掲示板利用させていただきます。 現在oracleのDBA1の勉強をしています。 sqlplusへ接続する際、as句を使用する意味がわかりません。 「connect sys/oracle as sysdba」の説明が、「sysdbaとして接続します」と参考書に書いています。 sysdbaは権限なのに、sysdbaで接続するとはどいういう意味なのでしょうか。sysユーザーにはsysdba権限が付与されているので、普通にas句を使わなくてもsysdba権限が必要な操作を実施可能と理解しています。 どなたかご教示いただけますでしょうか。

  • Oracle 10g 他スキーマの参照権限をはずす方法

    Oracle 10g 他スキーマの参照権限をはずす方法 ユーザを2個作成したら、ユーザ名と同一のスキーマが2個できました。 デフォルトで他スキーマの参照権限がついているようです。 この権限をはずす事はできますでしょうか。 以下のSQLでははずせませんでした。 REVOKE ALL ON YAMADA.* TO TANALA;

  • oracleユーザーの権限確認方法について

    お世話になります。 例えばですが、oracleでsysユーザからaaaというユーザーを作成し、 selectやcreateなどの権限を付与したとします。 そこでaaaユーザーでログインして、aaaユーザーが行うことのできる 権限を調べたいと思ったのですが、いまいちわかりません…。 (1)select * from session_privs; ではcreate系の権限は表示されますが、select系(DML文)の権限が何を付与されているか表示されませんでした。 (2)select * from user_sys_privs; でもselect等の権限の確認はできませんでした。 (3)select * from user_tab_privs; では一件も出てきませんでした。 上記3つは何か間違えているのでしょうか? それとも他にも何か調べ方があるのでしょうか? よろしくお願い致します。

  • ORACLEのユーザー設定の規約について

    マニュアル不明の為,下記内容を教えて下さい。 或るシステムでユーザー登録しようとしましたが,下記の規約があるようです。 ORACLEの「スキーマ・オブジェクトの命名規則」に従うユーザー名の制限とはどの様な物でしょう? あとORACLEでのパスワードの設定に制限はあるのでしょうか?

  • 特権ユーザーって?

    Oracle9iで質問です。 OS認証が設定されていて、 サーバー上のsqlplusから" / as sysdba"でログインすると、 「アイドルインスタンスに接続しました。」と表示されました。 DB名とか指定していないですが、 これはどのDBに繋がったんですか? 1DB1インスタンスの構成なので、 この場合に限って指定する必要はないとかでしょうか? nDBnインスタンスの場合は? その後、startupし、テーブルを作ってみたところ、OWNERはSYSになっていました。 これは、SYSDBA権限でOracleに認証された人は、 DB内ではSYSとして扱われるという事ですか?

  • sysauxの読み方について

    初歩的な質問ですみません。 Oracleのsysaux表領域の「sysaux」は 何て読むのかを教えていただきたいです。