助け合いフォーラム

Oracle DB

Oracle Master Silver SQL 2019(1Z0-071)
問題ID : 26627
問題を開く
ビューに対して設定できるオブジェクト権限はどれですか(該当するものを全て選択して下さい)。

正解

SELECT

UPDATE

INSERT

DELETE

REFERENCES

解説

他のデータベースユーザーが所有しているオブジェクトに対して何ができるかを設定するのが、オブジェクト権限です。
オブジェクト権限をユーザーやロール(複数の権限をまとめたもの)に付与するには、次の構文を使用します。

 GRANT オブジェクト権限名 ON オブジェクト名 TO {ユーザー名 | PUBLIC | ロール名}

ビューには、以下のオブジェクト権限を設定できます。

 SELECT :データを検索する権限
 UPDATE :データを更新する権限
 INSERT :データを挿入する権限
 DELETE :データを削除する権限
 REFERENCES :参照整合性制約を作成する権限

以上より、
・SELECT
・UPDATE
・INSERT
・DELETE
・REFERENCES
が正解となります。

ALTER(表や順序を変更する権限)もオブジェクト権限ですが、ビューには設定できません。
上に戻る

ビューに対して設定できるオブジェクト権限(REFERENCES)

投稿日 2025/04/22

ビューに対して設定できるオブジェクト権限はどれですか(該当するものを全て選択して下さい)

REFERENCES権限はビューに対して設定できるオブジェクトではないと思います。

以下理由
REFERENCES権限は、テーブル間の外部キー制約(参照整合性)を設定するために必要な権限です。ビューは実データを持たない仮想的なテーブル(保存されたクエリ)であり、それ自体が参照整合性を保証する対象とはならないため、REFERENCES権限を設定することはできません。

2025/04/23 10:07

私も気になってちょっと調べてみたのですが、実際に付与しようとすると、付与自体は成功するようです。

SQL> CREATE OR REPLACE VIEW emp_view AS
  2  SELECT employee_id, employee_name, department_id
  3  FROM employees;

ビューが作成されました。

SQL> GRANT REFERENCES ON emp_view TO testuser01;

権限付与が成功しました。

SQL> 

手持ちのオラクルマスター教科書(黒本)見てみたのですが、Silver DBAのテキストとSilver SQLのテキストで、記載が異なってました。
※Silver SQLの方は「主なオブジェクト権限」の一覧に、「ビュー」のオブジェクト権限として「REFERENCES」の記載があるが、Silver DBAの方は記載がない。

公式マニュアルみると、「表18-2 オブジェクト権限(操作対象のデータベース・オブジェクト別)」にビュー権限として「REFERENCES」入っていて、付与できそうに見える。
https://docs.oracle.com/cd/F19136_01/sqlrf/GRANT.html

実試験でこういう問題が出題されると、回答に困りますね...。


コメント

k kouhhh

2025/04/23 12:49

親切な回答ありがとうございます。 勉強になります!

この返信に対して
コメントを記入できます

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