<< January 2018 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
<< テクニカルエンジニア(データベース) H19 PM1-2 解いてみた | main | テクニカルエンジニア(データベース) H19 PM1-4 解いてみた >>

テクニカルエンジニア(データベース) H19 PM1-3 解いてみた

テクニカルエンジニア(データベース)午後1問3を解いてみた。
所要時間 15分。

設問1
(1) アクセスユーザのレコードを選択するビューを作成し、アクセス権限を与える。
(2) 各ユーザごとにビューを作成せずに、ビューを共通化できる。

設問2
(1)
a CREATE ROLE
b TO 営業1課長ロール
c TO B111
d TO B110
(2) "REVOKE 営業部長ロール FROM B110"と"GRANT 営業部長ロール TO B130"を実行する。

設問3
(ア) 否 従業員基本データは全従業員が参照できるため、監査証跡から特定できない。
(イ) 可 従業員人事データの更新は特定者しかできないため、監査証跡と照合して特定できる。
(ウ) 可 給与テーブルのUPDATEに失敗したユーザIDを検索すればよい。

【感想】
テクニカルエンジニア(情報セキュリティ)で、まさにこの手の問題が出るのではないかと想像していた。DBでこれがでるとなると、SVの立場がさらに不明確になる。
ss2004 * テクニカルエンジニア(データベース) * 18:22 * comments(5) * trackbacks(0)

コメント

設問1(2)
「従業員ごとにビュー定義、権限の定義を行う必要がなくなる。」主旨の回答にしました。

問3は簡単ですね。
Comment by Miny @ 2007/04/19 3:10 AM
>設問1(2)
>「従業員ごとにビュー定義、権限の定義を行う必要がなくなる。」主旨の回答にしました。

SQL文

CREATE VIEW 従業員個人ビュー AS
SELECT * FROM 従業員個人
WHERE 従業員コード = USER

で、従業員個人ビューを定義するとして、ビューへのアクセス権限の定義には特にUSER関数の出番はないと思います。

ところで、USER関数について問題文中に解説がありませんでしたが、標準SQLの機能なんでしょうか?
SQLSTATEも初見でした。
だいたい意味するところは分かりましたが。
Comment by ss2004 @ 2007/04/19 7:16 AM
勘違いしてました。

USER関数を使わなかった場合、「各従業員用にビューを定義して、それぞれにその従業員だけのアクセスを認める権限を定義しなければならない」ということですね。

失礼しました。
Comment by ss2004 @ 2007/04/19 7:20 AM
いえいえ少し焦りました(^^;)

>USER関数について問題文中に解説がありませんでしたが、標準SQLの機能なんでしょうか?

私も分からず、プログラムのメソッドのようなものだと解釈してました。

>SQLSTATE
SQLCODE、SQLSTATEは標準SQLで厳密に違いがあるようです。埋め込みSQLの場合ホスト言語がSQLを実行した後、
リターンコードをSQLSTATEで判断するかと思います。

データ未存在の結果を返す場合
SQLCODEは、+100
SQLSTATEは、02000
ORACLEのSQLCODEは、ORA-1403 



Comment by Miny @ 2007/04/19 11:43 PM
SQLSTATEについては合格完全対策に載ってましたね
Comment by ss2004 @ 2007/04/20 8:27 AM
コメントする









トラックバック

このページの先頭へ