Unity Catalogの管理、アクセス制御、および監視機能を提供します。 以下のような用途に使用: アクセス権の付与・取り消し(GRANT/REVOKE)、特定のユーザーが何にアクセスできるかを判断する、行レベルのセキュリティ(細粒度のアクセス制限)と列マスク(データの一部を隠す機能)を設定する、外部のデータ保存場所と保存認証情報を作成する、カタログ・スキーマ・テーブル・ボリューム(データ保管領域)を定義する、「このテーブルを読めるのは誰か」を確認する、監査ログや系統情報、請求関連のシステムテーブルに問い合わせる、または /Volumes/ 内のファイルを操作する。
Unity Catalog governance, access control, and observability. Use to grant or revoke access (GRANT/REVOKE), reason about the privilege model and ownership, set up row-level security and column masks, create external locations and storage credentials, define catalogs/schemas/tables/volumes, answer "who can read this table", and query system tables (audit, lineage, billing) or work with volume files in /Volumes/.
Unity Catalog(データ管理・保護)の ガバナンス(データアクセス管理) に関するガイドです。アクセス制御、権限モデル、外部保存先、セキュリティ機能付きDDL(データ定義言語)、きめ細かいアクセス制御のほか、システムテーブルとボリュームファイル操作をカバーしています。
databricksCLIコマンド実行前に、CLIとサブコマンドが存在することを確認してください。databricks --versionを実行してください。このスキルは統合CLI(≥ v1.0.0)を想定しています。ここに示すいくつかのサブコマンド(experimental aitools、system-schemas、external-lineage、grants)はバージョンやワークスペース環境によって異なります。コマンドが見つからないか、フラグが使えない場合は、推測で別のフラグを試すのではなく、SQL形式またはPython SDKを代わりに使用してください。各リファレンスは関連するバージョン要件を個別に記載しています。
次のような場合に使用してください:
ガバナンス・アクセス制御(ここから始めましょう):
GRANT/REVOKE、UC権限モデル、所有権管理(ALTER … OWNER TO)、SHOW GRANTS、「誰がこのテーブルを読み書きできるのか」といった質問への対応current_user() / is_account_group_member() を使った動的ビューCREATE STORAGE CREDENTIAL、CREATE EXTERNAL LOCATION、外部テーブル・ボリュームのバックアップ監視・ファイル管理:
/Volumes/ 内のファイル一覧表示)| トピック | ファイル | 説明 |
|---|---|---|
| アクセス制御 | references/1-access-control.md | 権限モデル、セキュアな階層構造、GRANT/REVOKE、所有権、権限の継承、SHOW GRANTS |
| 外部保存先 | references/2-external-locations.md | ストレージ認証情報(AWS/Azure/GCP)、外部保存先、検証 |
| セキュリティ機能付きDDL | references/3-securables-ddl.md | カタログ・スキーマ・テーブル・ビューの作成・変更・削除、コメント、タグ、所有権 |
| きめ細かいアクセス制御 | references/4-fine-grained-access.md | 行フィルター、列マスク、動的ビュー |
| システムテーブル | references/5-system-tables.md | 系統図、監査、請求、コンピュート、ジョブ、クエリ履歴 |
| ボリューム | references/6-volumes.md | ボリュームファイル操作、権限管理、ベストプラクティス |
| データプロファイリング | references/7-data-profiling.md | データプロファイリング、ドリフト検出、プロファイルメトリクス |
create コマンドには --json を使用してください。 位置指定引数の順序はコマンドごとに異なり、CLIバージョン間で変わっています。そのため --json を使うと順序に依存しなくなり、バージョンで安定した形式となります。このスキル全体で --json を推奨しています。
# カタログを作成
databricks catalogs create --json '{"name": "my_catalog"}'
# スキーマを作成
databricks schemas create --json '{"name": "my_schema", "catalog_name": "my_catalog"}'
# 管理ボリュームを作成
databricks volumes create --json '{
"catalog_name": "my_catalog",
"schema_name": "my_schema",
"name": "my_volume",
"volume_type": "MANAGED"
}'
# カタログ・スキーマ・ボリュームをリスト表示(読み取りコマンドは単純な位置指定引数を使う)
databricks catalogs list
databricks schemas list my_catalog
databricks volumes list my_catalog.my_schema
位置指定の create 引数も使えますが、コマンド間で順序が 異なる ため、各コマンドごとの順序は以下のとおりです(このため --json を推奨します):
| コマンド | 位置指定 create の順序 |
|---|---|
databricks catalogs create |
NAME |
databricks schemas create |
NAME CATALOG_NAME |
databricks volumes create |
CATALOG_NAME SCHEMA_NAME NAME VOLUME_TYPE |
CLIの仕様はバージョンによって異なります。
databricksサブコマンドや位置指定シグネチャがインストール環境にない場合は、推測でフラグを試すのではなく、--json、SQL形式、またはPython SDKを優先してください。
databricks fs は UC ボリュームパスでも dbfs: スキームプレフィックスが必要です。なければCLIはそのパスをローカルファイルシステムとして扱い、「ディレクトリなし」というエラーが発生します。
# ボリューム内のファイルをリスト表示
databricks fs ls dbfs:/Volumes/catalog/schema/volume/path/
# ディレクトリの内容をボリュームにアップロード(-r はディレクトリ自体でなく内容をコピー)
databricks fs cp -r --overwrite /tmp/data dbfs:/Volumes/catalog/schema/volume/dest
# ボリュームからファイルをダウンロード
databricks fs cp dbfs:/Volumes/catalog/schema/volume/file.csv /tmp/file.csv
# ボリューム内にディレクトリを作成
databricks fs mkdirs dbfs:/Volumes/catalog/schema/volume/new_folder
GRANT/REVOKE はガバナンスの中核操作です。完全な権限モデルは references/1-access-control.md を参照してください。
-- グループにスキーマの読み取り権を付与
GRANT USE CATALOG ON CATALOG analytics TO `data_readers`;
GRANT USE SCHEMA ON SCHEMA analytics.gold TO `data_readers`;
GRANT SELECT ON SCHEMA analytics.gold TO `data_readers`;
-- このテーブルには誰がアクセスできるか?
SHOW GRANTS ON TABLE analytics.gold.customers;
-- 権限を取り消す
REVOKE SELECT ON SCHEMA analytics.gold FROM `data_readers`;
-- システムテーブルへのアクセス権を付与
GRANT USE CATALOG ON CATALOG system TO `data_engineers`;
GRANT USE SCHEMA ON SCHEMA system.access TO `data_engineers`;
GRANT SELECT ON SCHEMA system.access TO `data_engineers`;
-- テーブル系統図:このテーブルに入力するテーブルは?
SELECT source_table_full_name, source_column_name
FROM system.access.table_lineage
WHERE target_table_full_name = 'catalog.schema.table'
AND event_date >= current_date() - 7;
-- 監査:最近の権限変更
SELECT event_time, user_identity.email, action_name, request_params
FROM system.access.audit
WHERE action_name LIKE '%GRANT%' OR action_name LIKE '%REVOKE%'
ORDER BY event_time DESC
LIMIT 100;
-- 請求:ワークスペース別DBU使用量
SELECT workspace_id, sku_name, SUM(usage_quantity) AS total_dbus
FROM system.billing.usage
WHERE usage_date >= current_date() - 30
GROUP BY workspace_id, sku_name;
databricks experimental aitools tools queryは実験的なコマンドです。experimental名前空間はCLIバージョン間で安定保証されておらず、お使いのインストール環境に含まれない可能性があります。システムテーブルのSQLは、SQLウェアハウス(SQLエディタ、スケジュール済みクエリ)、Python SDK(w.statement_execution.execute_statement)、またはノートブックから実行することをお勧めします。実験的CLIは迅速なアドホックチェックにのみ使用してください。
これらの例で使うIDを取得する方法 —
WAREHOUSE_ID:databricks warehouses listを実行(またはUIのSQLウェアハウスの接続詳細からコピー)。METASTORE_ID(references/5-system-tables.mdで使用):SDKでw.metastores.current().metastore_id、またはカタログUI → メタストア詳細。
実験的CLI形式(便利さのため):
databricks experimental aitools tools query --warehouse WAREHOUSE_ID "
SELECT source_table_full_name, target_table_full_name
FROM system.access.table_lineage
WHERE event_date >= current_date() - 7
"
安定したSDK代替案(すべてのCLIバージョンで動作):
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
resp = w.statement_execution.execute_statement(
warehouse_id="WAREHOUSE_ID",
statement="""
SELECT source_table_full_name, target_table_full_name
FROM system.access.table_lineage
WHERE event_date >= current_date() - 7
LIMIT 100
""",
)
for row in resp.result.data_array or []:
print(row)
CLIの仕様はバージョンによって異なります。
databricksサブコマンド(実験的ツール、system-schemas、external-lineageなど)が見つからない場合は、推測でフラグを試すのではなく、上記のSQL ウェアハウスまたはPython SDKにフォールバックしてください。
このスキルは Unity Catalog の ガバナンス を担当します:アクセス制御、権限モデル、外部保存先・ストレージ認証情報、セキュリティ機能付きDDL、きめ細かいアクセス制御、システムテーブル、ボリュームです。関連する他の領域については、姉妹スキルを使用してください:
WITH METRICS LANGUAGE YAML)Guidance for Unity Catalog governance — access control, the privilege model, external locations, securable DDL, and fine-grained access — plus system tables and volume file operations.
Before running
databricksCLI commands, confirm the CLI and the subcommand exist. Rundatabricks --version— this skill assumes the unified CLI (≥ v1.0.0). Several subcommands shown here (experimental aitools,system-schemas,external-lineage,grants) vary by version or workspace availability; if one is missing or rejects a flag, fall back to the SQL form or the Python SDK rather than guessing. Each reference notes its own version floor where relevant.
Use this skill when:
Governance & access control (start here):
GRANT/REVOKE, the UC privilege model, ownership (ALTER … OWNER TO), SHOW GRANTS, "who can read/write this table?"current_user() / is_account_group_member()CREATE STORAGE CREDENTIAL, CREATE EXTERNAL LOCATION, backing external tables/volumesObservability & files:
/Volumes/)| Topic | File | Description |
|---|---|---|
| Access Control | references/1-access-control.md | Privilege model, securable hierarchy, GRANT/REVOKE, ownership, inheritance, SHOW GRANTS |
| External Locations | references/2-external-locations.md | Storage credentials (AWS/Azure/GCP), external locations, validation |
| Securables DDL | references/3-securables-ddl.md | CREATE/ALTER/DROP catalogs/schemas/tables/views, comments, tags, ownership |
| Fine-Grained Access | references/4-fine-grained-access.md | Row filters, column masks, dynamic views |
| System Tables | references/5-system-tables.md | Lineage, audit, billing, compute, jobs, query history |
| Volumes | references/6-volumes.md | Volume file operations, permissions, best practices |
| Data Profiling | references/7-data-profiling.md | Data profiling, drift detection, profile metrics |
Use --json for create commands. Positional argument order differs per command and
has changed across CLI versions, so --json is the order-independent, version-stable form
shown throughout this skill.
# Create a catalog
databricks catalogs create --json '{"name": "my_catalog"}'
# Create a schema
databricks schemas create --json '{"name": "my_schema", "catalog_name": "my_catalog"}'
# Create a managed volume
databricks volumes create --json '{
"catalog_name": "my_catalog",
"schema_name": "my_schema",
"name": "my_volume",
"volume_type": "MANAGED"
}'
# List catalogs, schemas, volumes (read commands take simple positional args)
databricks catalogs list
databricks schemas list my_catalog
databricks volumes list my_catalog.my_schema
Positional create args still work if you prefer them, but the order is not uniform
across commands — this is the per-command order (and the reason --json is recommended):
| Command | Positional create order |
|---|---|
databricks catalogs create |
NAME |
databricks schemas create |
NAME CATALOG_NAME |
databricks volumes create |
CATALOG_NAME SCHEMA_NAME NAME VOLUME_TYPE |
CLI surface varies by version. If a
databrickssubcommand or positional signature is missing in your install, prefer--json, the SQL form, or the Python SDK rather than guessing flags.
databricks fs requires the dbfs: scheme prefix even for UC Volume paths — without it the CLI treats the path as local filesystem and errors with no such directory.
# List files in a volume
databricks fs ls dbfs:/Volumes/catalog/schema/volume/path/
# Upload a directory's contents to a volume (-r copies contents, not the directory itself)
databricks fs cp -r --overwrite /tmp/data dbfs:/Volumes/catalog/schema/volume/dest
# Download a file from a volume
databricks fs cp dbfs:/Volumes/catalog/schema/volume/file.csv /tmp/file.csv
# Create a directory in a volume
databricks fs mkdirs dbfs:/Volumes/catalog/schema/volume/new_folder
GRANT/REVOKE is the core governance operation. See references/1-access-control.md for the full privilege model.
-- Grant read access on a schema to a group
GRANT USE CATALOG ON CATALOG analytics TO `data_readers`;
GRANT USE SCHEMA ON SCHEMA analytics.gold TO `data_readers`;
GRANT SELECT ON SCHEMA analytics.gold TO `data_readers`;
-- Who can access this table?
SHOW GRANTS ON TABLE analytics.gold.customers;
-- Revoke
REVOKE SELECT ON SCHEMA analytics.gold FROM `data_readers`;
-- Grant access to system tables
GRANT USE CATALOG ON CATALOG system TO `data_engineers`;
GRANT USE SCHEMA ON SCHEMA system.access TO `data_engineers`;
GRANT SELECT ON SCHEMA system.access TO `data_engineers`;
-- Table lineage: What tables feed into this table?
SELECT source_table_full_name, source_column_name
FROM system.access.table_lineage
WHERE target_table_full_name = 'catalog.schema.table'
AND event_date >= current_date() - 7;
-- Audit: Recent permission changes
SELECT event_time, user_identity.email, action_name, request_params
FROM system.access.audit
WHERE action_name LIKE '%GRANT%' OR action_name LIKE '%REVOKE%'
ORDER BY event_time DESC
LIMIT 100;
-- Billing: DBU usage by workspace
SELECT workspace_id, sku_name, SUM(usage_quantity) AS total_dbus
FROM system.billing.usage
WHERE usage_date >= current_date() - 30
GROUP BY workspace_id, sku_name;
databricks experimental aitools tools queryis an experimental command. Theexperimentalnamespace is not guaranteed to be stable across CLI versions and may be absent in your install. Prefer running system-table SQL from a SQL warehouse (SQL editor, scheduled query) or the Python SDK (w.statement_execution.execute_statement), or a notebook. Use the experimental CLI only for quick ad-hoc checks.
Getting the IDs these examples use.
WAREHOUSE_ID— rundatabricks warehouses list(or copy it from a SQL warehouse's Connection details in the UI).METASTORE_ID(used in references/5-system-tables.md) —w.metastores.current().metastore_idvia the SDK, or the Catalog UI → metastore details.
Experimental CLI form (convenience only):
databricks experimental aitools tools query --warehouse WAREHOUSE_ID "
SELECT source_table_full_name, target_table_full_name
FROM system.access.table_lineage
WHERE event_date >= current_date() - 7
"
Stable SDK fallback (works on any CLI version):
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
resp = w.statement_execution.execute_statement(
warehouse_id="WAREHOUSE_ID",
statement="""
SELECT source_table_full_name, target_table_full_name
FROM system.access.table_lineage
WHERE event_date >= current_date() - 7
LIMIT 100
""",
)
for row in resp.result.data_array or []:
print(row)
CLI surface varies by version. If a
databrickssubcommand (e.g. anexperimentaltool,system-schemas, orexternal-lineage) is missing, fall back to the SQL warehouse or the Python SDK shown above rather than guessing flags.
This skill owns Unity Catalog governance: access control, the privilege model, external locations / storage credentials, securable DDL, fine-grained access, system tables, and volumes. For adjacent concerns, use the sibling skill instead:
WITH METRICS LANGUAGE YAML)@prod/@challenger aliasesai_mask / ai_classify (AI transforms, not access control — see references/4-fine-grained-access.md)These governance areas are intentionally out of scope for v0.3.0 and planned for later:
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。