データ・ディクショナリ・ビューに関して正しい記述はどれですか。
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_の順に表示される範囲が広がります。