Fabric Data Engineer Associate(DP-700) 無料問題 4 / 10 ・ 分野1: 分析ソリューションの実装と管理
ウェアハウスの dbo.社員 の列のうち、給与 を除く列にだけ、利用者 U へ GRANT SELECT を実行した。U が SELECT FROM dbo.社員 を実行した結果として、列レベル セキュリティのページに合うものはどれか。
- 給与 の SELECT が拒否されたというエラーが出て、ほかの列の値だけが返る
- 給与 の列は、既定のマスク関数で隠した値に置き換わって返る
- 給与 を除いた残りの列だけが、行の数どおりに返る
- 給与 の SELECT が拒否されたというエラーになり、何も返らない
正解と解説を見る
正解: D
正解の理由
ページは、列レベル セキュリティを GRANT の T-SQL 文で実装し、許した列だけに SELECT の権限を与えると書く。例で、許していない列を含むクエリ(SELECT )は、その列への SELECT の権限が拒否されたという Msg 230 のエラーで失敗する。U の SELECT は 給与 を含むので失敗する。
違う選択肢
「給与 を除いた残りの列だけが、行の数どおりに返る」… ページは、SELECT の権限の無い列を含むクエリは失敗し、その列への SELECT の権限が拒否されたという Msg 230 のエラーを返すと書く。列を外して返すのではない。
「給与 の SELECT が拒否されたというエラーが出て、ほかの列の値だけが返る」… ページの例は、権限の無い列を含むクエリが Msg 230 のエラーで失敗する(Queries executed as ... will fail)と書く。クエリ全体が失敗し、ほかの列の値も返らない。
「給与 の列は、既定のマスク関数で隠した値に置き換わって返る」… マスクの値に置き換えるのは動的データ マスクである。列レベル セキュリティでは、権限の無い列を含むクエリはエラーになる。
押さえどころ
列レベル セキュリティは、権限の無い列を「見えなくする」のではなく「使えなくする」。利用者は許された列を列名で指定して照会する。値は見せずに列の存在は残したいなら動的データ マスクを、行を絞るなら行レベル セキュリティを使う。権限はロールに付けると管理しやすい。