あの“津崎さん”も保有する難関資格「データベーススペシャリスト」。本企画では、データベーススペシャリスト試験 午前/午後試験対策のための「基礎知識」を抜粋してお届けします。今回は、「SQLでのロール作成と付与の基礎」を解説します。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍ポケットスタディ データベーススペシャリスト [第2版](2015年12月22日発行)』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
※編集部注:前回記事「SQLで「権限の付与」を行う」はこちら
出題頻度 午前II:--- 午後I:●-- 午後II:●--
●--:過去14年間での過去問出題数が1〜9回
●●-:過去14年間での過去問出題数が10〜19回
●●●:過去14年間での過去問出題数が20回以上
●ロールの概念、ロール利用の流れ、ロールの削除、午後演習
ロール(ROLE)とは、権限をとりまとめたものです。以下のように、ロールを活用すれば効率的に権限を運用できます。
ロールの作成にはCREATE ROLE文を利用します。
構文 | CREATE ROLE ロール名 |
---|---|
ロール名 | 作成するロールの名称 |
作成したロールに権限を設定した後、ユーザにロールを与えます。
ロールの削除はDROP ROLE文で行います。
構文 | DROP ROLE ロール名 |
---|---|
ロール名 | 削除するロールの名称 |
尚、ロールに設定した権限を取り消すときはREVOKE文を使います。
以下に、ロールを作成してから利用者に付与するまでの流れを示します。
(1)ロールの作成
最初にロールを作成します。以下の構文で、上記の図における「一般社員用ロール」を作成します。
CREATE ROLE 一般社員用ロール
(2)ロールへの権限設定
次に、ロールに権限を設定します。構文は、ユーザに権限を与えるときと同じ構文を使います。
GRANT SELECT, UPDATE ON社員 TO 一般社員用ロール GRANT SELECT ON 社員評価 TO 一般社員用ロール
(3)ユーザへのロール付与
最後に、ロールをユーザに付与します。
GRANT 一般社員用ロール TO 新入社員
下図左側の図のような階層的な権限管理を行う場合、右側のようにロールに対してロールを付与すると、運用が効率的になります。この例では、課長が持つ権限を変更する場合、課長用のロールを修正すれば、その修正内容が部長用のロールにも自動的に反映されます。
平成19年度午後I問3ではロールの概念が出題されました。それ以前はほとんど出題されていませんでしたが、本問からは、今後の出題傾向として「監査証跡・セキュリティなど含め、理解してほしい」という意図が感じられます。今後の出題に備え、以下の問題で練習しておきましょう(決して難しい問題ではありません)。先に設問から目を通し、その後に本文を読むのが、手早く解くコツです。
データベースセキュリティに関する次の記述を読んで、設問1〜3に答えよ。
B社では、関係データベース管理システム(RDBMS)を用いて人事管理データベースを構築した。この人事管理データベースは、従業員のアクセス権限によって、アクセスできる従業員データの範囲(以下、アクセス範囲という)を制御している。
〔人事管理データベースの概要〕
人事管理データベースでは、従業員データを次のように管理している。
(1) 従業員には、一意な従業員コードを付与し、社内電話番号やEメールアドレスなどの基本データのほかに、個人データ、人事データ及び給与データを管理している。
(2) 従業員には、従業員データにアクセスするために、RDBMSのユーザIDが与えられている。このユーザIDには、従業員コードを使用している。
(3) ユーザIDごとのアクセス範囲を制御できるようにするため、RDBMSのアクセス制御機構を使用している。また、データ漏えい及びデータ改ざんを追跡するために、RDBMSの監査機構も使用している。
人事管理データベースの主要なテーブル構造を、図1に示す。
〔RDBMSの仕様と人事管理データベースの設定内容〕
B社が採用したRDBMSがもつアクセス制御機構、監査機構の仕様及び人事管理データベースでの設定内容は次のとおりである。
1.アクセス制御機構
ユーザID、ロールに対して、オブジェクト(テーブルやビューなど)へのアクセス権限を付与する。また、ユーザIDに対してロールを与えることもできる。人事管理データベースでは、ユーザIDごとに“従業員基本”テーブル、“従業員個人”テーブル、“従業員人事”テーブル、“給与”テーブルへのアクセス権限を付与している。
2.監査機構
(1) オブジェクト、オブジェクトに対する操作の内容(DDL文及びDML文)、オブジェクトを操作するユーザIDを監査対象とする。人事管理データベースでは、監査対象をそれぞれ次のように設定している。
(2) 人事管理データベースでは、次の監査証跡を半年間保存している。
〔アクセス範囲要件とB社の組織〕
図1のテーブルに対するアクセス範囲要件は、次のとおりである。図2には、B社の組織と従業員の関係の一部を示す。
表1に、アクセス権限ごとの各テーブルのアクセス範囲を示す。
〔アクセス制御と監査の問題点〕
人事管理データベースのアクセス制御と監査について、次の問題点<1>〜<3>を指摘された。
<1> テーブルに対するアクセス権限の付与では、表1のアクセス範囲を制御できない。
<2> ユーザIDごとにアクセス権限の設定を行っているので、新たなテーブルの追加や組織変更などが発生したときに、アクセス制御の見直しが煩雑になり、設定漏れが発生するリスクが高い。
<3> 内部犯行による(アクセス権限のある従業員による)データ漏えい及びデータ改ざんに対して、犯人を追跡できない場合がある。
アクセス制御と監査の問題点<1>について、(1)、(2)に答えよ。
(1) 従業員が“従業員個人”テーブルの自分のデータだけをアクセス可能にするために、ビューを使用することにした。その場合のアクセス権限はどのように付与すればよいか。35字以内で具体的に述べよ。
(2) (1)のビューにUSER関数を使用すると効率が良い。その理由を、30字以内で具体的に述べよ。
(H19春DB午後I問3設問1)
(解答と解説は次ページへ)
Copyright © ITmedia, Inc. All Rights Reserved.