DP-900:Microsoft Azure Data Fundamentals Azure のリレーショナルデータ 問8
Azure のリレーショナルデータ/リレーショナルの概念営業部の担当者には売上テーブルの参照(SELECT)だけを許可し、データの追加・更新・削除や、テーブル構造の変更は一切できないようにしたい。データベースエンジンに対してこの権限設定を行うために実行するステートメントが属する分類として適切なものはどれか。
当サイトのオリジナル問題(DP-900:Microsoft Azure Data Fundamentalsの出題範囲「Azure のリレーショナルデータ」に対応。実際の試験問題ではありません)
- ADCL(データ制御言語)
- BDML(データ操作言語)
- CDDL(データ定義言語)
- DTCL(トランザクション制御言語)
正解:A
解説
SQLのステートメントのうち、GRANTやREVOKEのようにユーザーやロールに対してテーブルなどのオブジェクトへのアクセス権限を付与・剥奪するものはDCL(データ制御言語)に分類されます。本問のように特定の担当者にSELECT権限だけを許可し、それ以外の操作を禁止する設定はDCLのステートメントで行います。DMLは行データの操作、DDLはオブジェクトの構造定義、TCLはトランザクションの確定・取り消しに関する分類であり、権限設定には使いません。
選択肢ごとの解説
- A正しい。GRANTやREVOKEのようにユーザーやロールに対してテーブルへのアクセス権限を付与・剥奪するステートメントはDCL(データ制御言語)に分類され、本問のようにSELECT権限だけを許可する設定はこの分類のステートメントで行います。
- B誤り。DML(データ操作言語)はSELECTやINSERT、UPDATE、DELETEなど行データを操作するためのステートメントの分類であり、誰にどの操作を許可するかという権限そのものを設定する機能は持ちません。
- C誤り。DDL(データ定義言語)はCREATEやALTER、DROPなどテーブルや列の構造を定義・変更するステートメントの分類であり、ユーザーへの権限付与には使いません。
- D誤り。TCL(トランザクション制御言語)はCOMMITやROLLBACKなど一連の処理をトランザクションとして確定・取り消しするためのステートメントの分類であり、権限設定には関係しません。