概要
Databricksにてデータ オブジェクトの特権と動的ビュー関数(行レベルセキュリティ、列レベルセキュリティ)に関する検証を実施した際のノートブックを共有します。
Databricksにて実施可能なデータストアシステムへの権限付与項目、あるいは、データへの権限付与項目を、下記表に示します。
分類 | 権限付与項目 | 可否 | 実施方法 |
---|---|---|---|
データストアシステムへの権限付与 | SQL命令(DDL、DCL)相当に対する実行の権限付与 | 〇 |
CREATE 権限、あるいは、OWNER 権限を付与する。 |
データストアシステムへの権限付与 | オブジェクト(スキーマ)一覧の閲覧の権限付与 | 〇 |
USAGE 権限とSELECT 権限を付与する。 |
データストアシステムへの権限付与 | データ参照の権限付与 | 〇 |
USAGE 権限とSELECT 権限を付与する。 |
データストアシステムへの権限付与 | データ挿入・更新・削除の権限付与 | 〇 |
MODIFY 権限を付与する。 |
データへの権限付与 | ルールベースによる行レベルセキュリティ | 〇 | 動的ビュー関数を利用。 |
データへの権限付与 | データ権限(認可)テーブルを利用した行レベルセキュリティ | 〇 | 動的ビュー関数を利用。 |
データへの権限付与 | 列への参照権限付与による列レベルセキュリティ | × | |
データへの権限付与 | 動的データマスキングによる列レベルセキュリティ(ルールベース) | 〇 | 動的ビュー関数を利用。 |
データへの権限付与 | 動的データマスキングによる列レベルセキュリティ(データ権限(認可)テーブル) | 〇 | 動的ビュー関数を利用。 |
下記を事前に実施する必要があります。
- ワークスペースレベルでのテーブルアクセス制御を有効にすること
- クラスター作成権限を拒否して、テーブルアクセス制御が有効なクラスターのみ利用するように設定すること
-
SELECT ON ANY FILE
権限を拒否すること
下記の実行を許容する場合には、USAGE
とSELECT
だけでなく、READ_METADATA
も許可する必要があります。
-
EXPLAIN
-
DESCRIBE TABLE
-
SHOW CREATE TABLE
データストア(データ分析基盤)におけるデータへの権限付与(認可、アクセス制御)の詳細については、下記の記事で整理しております。
ノートブックについて
ノートブックをGithub Pagesに公開しておりますので、詳細はそちらのノートブックで確認してください。
01_configure_data_object_privileges
にてデータへの権限付与の実施と管理者による実行結果の表示を、02_read_from_database_with_data_object_privileges
にてデータへの接続が制限されているユーザーの実行結果の表示を実施しております。前者と後者のノートブックを比較しながら、どのような結果となっているかご確認ください。