Oracle University 講師が ORACLE MASTER 取得を目指している方に向けて試験トピックを解説するブログ連載講座。「ORACLE MASTER Silver SQL 2019」資格取得に向けた試験トピックについて解説します。
————————————————-
今回はORACLE MASTER Silver SQLの試験トピック「ユーザー・アクセスの制御 – 権限の付与とロールの付与の区別-」に関連する問題をご紹介いたします。ORACLE MASTER Silver SQL(Exam Number: 1Z0-071-JPN)の詳細につきましては以下URLをご参考ください。
Oracle Database SQL Exam Number: 1Z0-071
URL: https://education.oracle.com/ja/oracle-database-sql/pexam_1Z0-071
————————————————-
前回の第19回に引き続き今回もデータベースのセキュリティとして重要な権限に関する問題をご紹介します。システム権限やオブジェクト権限についての詳細は第19回で扱っていますのでそちらも併せてご確認ください。それでは問題を見ていきましょう。

(解説)
今回はロールに着目した問題ですね。ロールとは、簡単に言ってしまうと各種権限を詰め合わせるための「箱」と思っていただくとよいでしょう。そのためロールを作成した直後は何も入っていない空っぽの箱という状態ですので、必要に応じて箱の中に権限を詰め込む作業が必要になります。この作業がロールに権限を付与するという操作に該当するわけです。ではロールの特性の説明とイメージ図を確認していきましょう。
- ロールの特性
- ユーザーに対して権限を扱うのと同様に、ロールに対して権限の付与および取消しを行うことができる。
- ロールにはシステム権限とオブジェクト権限の両方を付与および取消しを行うことができる。
- ロールに対してロールを付与および取消しを行うことができる。

ROLEの作成やROLEに権限を付与する方法の実行例を以下に乗せておきますのでご参考にしてください。

- PUBLICロールについて (重要)
Oracle Databaseにはすべてのデータベース・ユーザー・アカウントに自動的に割り当てられるPUBLICロールという特殊なロールがあります。すべてのユーザーがPUBLICロールを保持しているような形となるため、このPUBLICロールにシステム権限やオブジェクト権限を付与すると、その付与した権限はすべてのデータベース・ユーザーで使用可能となります。一見便利そうな感じがしますが扱いには十分注意が必要です。
間違っても「各ユーザーに権限付与するのが面倒だからPUBLICロールに設定しちゃえ」的な安易な考えで使用するのは絶対NGです。セキュリティ面をしっかり意識して、不必要な権限は付与しない最小権限の原則を念頭に、使用の際には十分ご注意ください。
それでは権限・ロールについて確認できたので、あとは選択肢を見ながら説明してきましょう。
選択肢1はもう大丈夫でしょう。ロールにはシステム権限、オブジェクト権限どちらも付与することができますので間違った内容になります。
選択肢2と選択肢3はどちらも誤りです。ロールを作成するにはCREATE ROLEシステム権限が必要になりますが、作成したロールは特定のユーザーの持ち物(スキーマ内のオブジェクト)となるわけではありません。
選択肢4も間違いですね。先の説明で記述しましたがPUBLICロールの使用には十分注意が必要で、セキュリティを考慮するためにもPUBLICロールには追加で権限は付与しない運用にするべきです。
選択肢5は正しい内容ですね。是非、実際にSQL文で実施してみてください。
選択肢6も正しい内容です。自分のスキーマ内のオブジェクトであれば追加の権限・ロールの付与がなくても操作可能です。この選択肢を間違ってしまった方は身近なものに例えてみてください。自分のカバンの中に入っている自分の所有物である、財布やメモ帳、筆記用具などなど、もちろん自由に使えますよね。それと同じと考えるとよいでしょう。
以上の結果から、正解の選択肢は5と6になります。
権限・ロールの知識はデータベースのセキュリティを維持するためにの必須項目となりますのでしっかりと学習しておきましょう。そうすることで今後、必要に応じてユーザーやロールにどのような権限が付与されているかディクショナリ・ビュー(※1)で確認をしてみたり、実際に付与した権限が使用されているかの確認としてOracle Databaseの機能(※2)を使ってみたりと、次なる知識習得のステップに進むことができます。
まずはセキュリティを意識した適切な権限付与が重要であることを頭にしっかり叩き込んでくださいね。
(参考情報)
※1:権限・ロール関係のディクショナリ・ビューは以下のようなものがあります。
DBA_SYS_PRIVS, DBA_TAB_PRIVS, DBA_ROLE_PRIVS, ROLE_SYS_PRIVS, ROLE_TAB_PRIVS
詳細は「Oracle Database リファレンス」マニュアルなどをご参考ください 。
※2:権限分析は専用のパッケージ(DBMS_PRIVILEGE_CAPTURE)を使用します。
詳細は「Oracle Database 管理者ガイド」「Oracle Database PL/SQLパッケージおよびタイプ・リファレンス」マニュアルなどをご参考ください。
今回の講義はこれで終了とします。皆様、お疲れ様でした。
次回も頑張っていきましょう!
————————————————-
– ORACLE MASTER Silver SQL 2019 のご紹介
– ORACLE MASTER Silver SQL 2019 試験記事トピック一覧
————————————————-
その他の ORACLE MASTER 試験トピック解説講座シリーズ:
【Oracle University講師によるORACLE MASTER Gold DBA 2019 試験トピック解説講座】トピック一覧
————————————————-
