データ・ディクショナリ・ビューに関して正しい記述はどれですか。
データ・ディクショナリ・ビューに関して正しい記述はどれですか。
A接頭辞 USER_ のビューは、現在のユーザーが所有するオブジェクトの情報を表示する✓
B接頭辞 DBA_ のビューは、特別な権限がなくても一般ユーザーが常に参照できる
C接頭辞 ALL_ のビューは、現在のユーザーがアクセスできるオブジェクトの情報を表示する✓
Dデータ・ディクショナリはOracleが自動的に保守し、ユーザーが直接DMLで更新することはできない✓
解説正答:A・C・D
データ・ディクショナリ・ビューは、接頭辞によって 参照できる範囲(スコープ) が決まっています。
接頭辞とスコープ:
| 接頭辞 | 表示される範囲 |
|---|---|
| USER_ | 現在のユーザーが 所有 するオブジェクト |
| ALL_ | 現在のユーザーが アクセスできる オブジェクト(所有+権限付与分) |
| DBA_ | データベース内の すべて のオブジェクト(要・DBA権限) |
各選択肢の検討:
- A(正):USER_ は自分が所有するオブジェクトの情報。
- B(誤):DBA_ の参照には DBA権限(または SELECT ANY DICTIONARY 等)が必要。一般ユーザーが常に見られるわけではない。
- C(正):ALL_ は自分がアクセス可能なオブジェクト(所有+権限付与されたもの)の情報。
- D(正):データ・ディクショナリはOracleが自動的に保守する 読取り専用 の仕組みで、ユーザーが
INSERT/UPDATE/DELETEで直接変更することはできない。
USER_ → ALL_ → DBA_ の順に範囲が広がる、と覚えると整理しやすいです。