設問1の解答は以下の通りとなります。(IPA解答例より)
設問1 | (1) | アクセス権限をテーブルには付与せずに、ビューだけ付与する。 | |
(2) | 従業員ごとにビューを作成する必要がなくなるから。 | ||
(1) ビューを利用してセキュリティを確保するためには、一般的に次の方法を取ります。
尚、システム間の連携においても、あるシステムが他のシステムのデータを誤って更新してしまわないように、“保険”として、上記の仕組みを利用することがあります。
(2) USER関数とは、そのSQL文を実行しているユーザIDの文字列を返す関数です。本問題で、出題者は「ビューを構成するSQL文において『WHERE 従業員コード=ユーザ関数』とすれば『アクセスしたユーザのデータしか参照できないビュー』を作ることができる。」「従業員個別のビューを作成するよりも効率的だ(ビューとはそのように使うものだ)」という答えを受験生に出させようとしています。〔人事管理データベースの概要〕(2)に、RDBMSの「ユーザIDには、従業員コードを使用している。」旨の記述がありますが、これが布石です。
これはあらゆる出題について言えることですが、現実の開発で「自分がどのように構築したか(こう構築するものだ)」という既成概念にとらわれると、解ける問題も解けなくなってしまいます。
過去問題を解くときは、まず「本文の構成上、不自然と思える一文」「違和感のある一文」に対して敏感になって下さい。そこには出題者の意図が隠されています。そして「きっと、こう答えさせたいのだろうな」と(仮に、自分の実務経験から、「それはおかしい」と思える内容であったとしても)出題者が答えて欲しいように答えましょう。
たまに予想が外れても諦めないで下さい。継続的に行えば必ず予測の精度は上がっていきます。このように、文中の表現に注意しながら過去問題を解いていけば「この表現はこれまで解いた問題ではあまり出てこなかった→今回独自の表現だ→設問の布石かもしれない→下線を引いておこう」といった高度な判断もできるようになります。
アクセス制御と監査の問題点<2>について、(1)、(2)に答えよ。
(1) アクセス権限管理を容易にするために、ロールを使用することにした。部門長用のロール(営業1課長ロール、営業2課長ロール、営業部長ロール)を作成するための、次のSQL文中の[a]〜[d]に入れる適切な字句を答えよ。ただし、従業員人事営業1課ビューは、営業1課長が自分の課の従業員人事データをアクセスするためのビューを指している。
(2) 人事異動によって営業部長がL氏(従業員コード:B110)からM氏(従業員コード:B130)に変更になった場合の(1)のロールに対する変更方法を、65字以内で具体的に述べよ。
(H19春DB午後I問3設問2)
(解答と解説は次ページへ)
Copyright © ITmedia, Inc. All Rights Reserved.