助け合いフォーラム

Oracle DB

Oracle Master Silver SQL 2019(1Z0-071)
問題ID : 26643
問題を開く
データ・ディクショナリの説明として正しいものはどれですか。

正解

データベース・オブジェクトやユーザー、権限などの管理情報が格納されている

解説

データ・ディクショナリはデータベースに関する様々な管理情報が格納された読取り専用の表の集合です。データベース・オブジェクトやユーザーの定義、権限などの情報が含まれており、DDL文の実行時にOracle Databaseによって更新されます。

以上より、
・データベース・オブジェクトやユーザー、権限などの管理情報が格納されている
が正解です。

その他の選択肢については以下のとおりです。

・データベースの管理情報をSQL文で参照するためのビューである
データ・ディクショナリ表のデータを参照するためのデータ・ディクショナリ・ビューの説明です。データ・ディクショナリは表なので、誤りです。

・SYSユーザーが定期的に表のデータを更新する
DDL文の実行時にOracle Databaseによって更新されるので、誤りです。

・データ・ディクショナリの所有者はSYSTEMユーザーである
データ・ディクショナリはSYSユーザーによって所有され、SYSTEM表領域(管理情報が格納されている論理的な記憶領域)に格納されているので、誤りです。

・一般ユーザーがアクセスできる
一般ユーザーはアクセスできないので、誤りです。一般ユーザーがデータ・ディクショナリ表のデータを参照するためにデータ・ディクショナリ・ビューがあります。

参考

【データ・ディクショナリとデータ・ディクショナリ・ビュー】
データ・ディクショナリはデータベースに関する様々な管理情報が格納された読取り専用の表の集合です。データベース・オブジェクトやユーザーの定義、権限などの情報が含まれており、DDL文の実行時にOracle Databaseによって更新されます。データ・ディクショナリはSYSユーザーによって所有され、SYSTEM表領域(管理情報が格納されている論理的な記憶領域)に格納されています。
データ・ディクショナリ・ビューはデータ・ディクショナリ表のデータを参照するためのビューです。Oracle Databaseが管理するデータ・ディクショナリ表はほとんどのデータが暗号形式になっているため、人が読みやすい形式に変換されたデータ・ディクショナリ・ビューで管理情報を参照します。
参照できるデータの範囲によって次の3つの接頭辞から始まる名前に分かれています。



同じ名前で接頭辞だけ異なるビューは共通のデータ・ディクショナリ表を参照します。
管理者権限で問合せできる「DBA_」から始まるビューは、データベース全体の管理情報を表示します。
「ALL_」から始まるビューは、問合せたユーザーが所有する、またはアクセス権限を付与されているオブジェクトの情報を表示します。
「USER_」から始まるビューは、問合せたユーザーが所有するオブジェクトの情報を表示します。上記2つのビューにある、所有者を示すOWNER列はありません。
なお、DBA_LOCK(ロックの情報)のように、他の接頭辞のビューが存在しないものもあります。

データ・ディクショナリ・ビューは、Database Configuration Assistant(DBCA:データベース作成・管理ツール)を使用してデータベースを作成する場合は自動的に作成されます。

【動的パフォーマンス・ビュー】
動的パフォーマンス・ビューは、データベースがOPEN(ユーザーがデータベースにアクセスできる状態)で使用されている間に動的に更新される仮想表です。
SYSユーザーが所有する「V_$」から始まる名前の動的パフォーマンス・ビューに対して、「V$」から始まるパブリックシノニムが作成されます。SYSユーザーか管理者権限を持つユーザーのみが動的パフォーマンス・ビューにアクセスできます。

動的パフォーマンス・ビューはデータベース管理者によるパフォーマンスの監視や、Oracle Enterprise Manager(システム管理ツール)によるデータベース情報の取得に使用されます。

主な動的パフォーマンス・ビューのパブリックシノニムには次のようなものがあります。

V$DATABASE:データベースに関する情報
V$PARAMETER:初期化パラメータに関する情報
V$SESSION:セッションに関する情報
V$DATAFILE:データファイルに関する情報
V$SQL:実行されたSQLに関する統計情報
V$TABLESPACE:表領域に関する情報

例)「shared」を含む初期化パラメータ名を表示


【DICTIONARYビュー】
全てのデータ・ディクショナリ・ビュー、動的パフォーマンス・ビューの名前と説明はDICTIONARYというビューに格納されています。

上に戻る

SYSTEMユーザーとSYSユーザーの違いが分からなかったのでまとめてみた。

公開日 2023/02/02

・データ・ディクショナリの所有者はSYSTEMユーザーである
データ・ディクショナリはSYSユーザーによって所有され、SYSTEM表領域(管理情報が格納されている論理的な記憶領域)に格納されているので、誤りです。
→SYSTEMユーザーとSYSユーザーは異なる。

ORACLE公式ドキュメントより
7.3.1 SYSおよびSYSTEMユーザー
SYS
このアカウントでは、すべての管理機能を実行できます。データベースのデータ・ディクショナリ用のすべての実表およびベース・ビューはSYSスキーマに保存されます。これらの実表およびベース・ビューはOracle Databaseを操作する際に重要となります。データ・ディクショナリの整合性を保持するには、SYSスキーマ内の表をデータベースのみで操作します。すべてのユーザーまたはデータベース管理者による変更は絶対に行わないでください。また、SYSスキーマ内に表を作成しないでください。
SYSユーザーにはSYSDBA権限が付与され、この権限によりバックアップやリカバリのような高水準な管理タスクを実行できます。

SYSTEM
このアカウントは、次の例外を除いたすべての管理機能を実行します。
・バックアップとリカバリ
・データベースのアップグレード
このアカウントを使用して日常的な管理タスクを実行できますが、Oracle Databaseを管理するための名前付きユーザー・アカウントを作成して、データベース・アクティビティを監視できるようにすることをお薦めします。

SYSユーザーとSYSTEMユーザーの違いは、SYSDBA権限があるかないかの違いである。

ORACLE公式ドキュメントより
7.3.2 SYSDBAおよびSYSOPERシステム権限
SYSDBAおよびSYSOPERはデータベースの作成、起動、停止、バックアップまたはリカバリなどの高度な管理操作を実行するために必要な管理権限です。SYSDBAシステム権限は、すべての権限を持つデータベース管理者用、SYSOPERシステム権限は、基本的な運用タスクを実行するがユーザー・データを表示する権限は持たないユーザー用です。

また、
ORACLE公式ドキュメントより、
SYS(データ・ディクショナリの所有者)
データ・ディクショナリのすべての実表とユーザー・アクセス可能ビューは、Oracle DatabaseユーザーSYSが所有しています。したがって、Oracle Databaseユーザーは、SYSスキーマに含まれている行またはスキーマ・オブジェクトを決して変更(UPDATE、DELETEまたはINSERT)しないでください。そのような操作により、データ整合性が損われることがあります。セキュリティ管理者は、このアカウントを厳しく管理する必要があります。

となっているので、SYSDBA権限はDBの中でもかなり重要な権限となっている。

この投稿に対して返信しませんか?