Azureリレーショナル定義問題

マルチテナントのSaaSアプリがAzure SQL Databaseを使用しています。「各テナントは自分のデータのみ参照できる」という要件を、アプリケーションロジックではなくデータベース側で強制したい場合、最適な機能はどれか?

A.Dynamic Data Masking
✗ Dynamic Data MaskingはUIでの表示をマスクする機能。SQLクエリで取得できるデータの範囲を制御するのはRLS。
B.Always Encrypted
✗ Always EncryptedはDBエンジンも暗号化データを扱う機能。行レベルのアクセス制御ではない。
C.Row-Level Security(RLS)← 正解
✓ 正解。Row-Level Security(RLS)はセキュリティポリシーとインライン関数でユーザーIDに基づいて参照できる行を自動フィルタする機能。アプリ側のWHERE句に依存せずDBレベルで強制できる。
D.Elastic Pool
✗ Elastic PoolはDTUを複数DBで共有するコスト最適化機能。行レベルのアクセス制御とは無関係。

DP-900:Microsoft Azure Data Fundamentals の問題一覧