メインコンテンツまでスキップ

高粒度なDML特権

備考

ベータ版

この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。

高粒度なDML特権である INSERTUPDATE、および DELETE は、Unity Catalog テーブルにおける MODIFY の最小特権の代替手段です。テーブルのデータは変更する必要があるものの、テーブルのスキーマやその他のメタデータは変更すべきではないプリンシパルに対して、それらを付与します。

これらの特権のいずれかを行使するには、プリンシパルは以下の特権も持っている必要があります。

  • SELECT テーブル上
  • USE SCHEMA 親スキーマ上
  • USE CATALOG 親カタログ上

特権の継承により、カタログまたはスキーマに対して INSERTUPDATE、または DELETE を付与すると、それらに含まれる現在および将来のすべてのテーブルに対して自動的に特権が付与されます。

コンピュートの要件

きめ細かなDML権限には、Databricks Runtime 18.1以降が必要です。これらは、Serverlessコンピュート、SQLウェアハウス、および標準アクセスモードのクラシックコンピュートでサポートされています。これらは、専用アクセスモードのコンピュートではサポートされていません。サポートされていないコンピュートでは、代わりに MODIFY を使用してください。

注記

Databricks Runtime 18 は、Databricks Runtime 18.0、18.1、および 18.2 よりも新しいバージョンです。以前は後の番号付きバージョンとしてリリースされていた機能が、今後は Databricks Runtime 18 への日付付きアップデートとしてリリースされるようになります。詳細については、統合リリースノートについてを参照してください。

MODIFY との関係

MODIFY は複合特権であり、INSERTUPDATE、および DELETE はその子特権です。MODIFY はテーブルのデータへの完全な書き込みアクセス権を付与しますが、各詳細な DML 特権はそのアクセス権のサブセットを付与するため、完全な MODIFY 特権を付与することなく、特定のデータ変更操作を委任できます。

複合権限と子権限は個別に付与および取り消されます。MODIFY を付与しても INSERTUPDATE、または DELETE は付与されず、MODIFY を取り消しても、明示的に付与されたそれらの権限は取り消されません。詳細については、「複合権限および子権限」を参照してください。

操作と必要な特権

INSERTUPDATE、および DELETE の権限で、ほとんどの DML 操作をカバーします。その他の操作では、引き続き MODIFY が必要です。

次の表に、一般的な操作がどのようにきめ細かな DML 権限にマッピングされるかを示します。これは包括的なリストではありません。

オペレーション

必要な権限

INSERT INTO

INSERT

INSERT OVERWRITE

INSERT そして DELETE

INSERT REPLACE WHERE/USING/ON

INSERT そして DELETE

動的パーティションの上書き

INSERT そして DELETE

UPDATE

UPDATE

DELETE

DELETE

MERGE INTO

INSERTUPDATE、またはDELETE(一致したアクションによって異なります)

TRUNCATE

DELETE

スキーマ変更を伴う INSERT OVERWRITE、スキーマ進化を伴う INSERT、またはスキーマ進化を伴う MERGE INTO など、スキーマやメタデータを変更する操作

MODIFY

ALTER TABLE ALTER COLUMNADD COLUMNDROP COLUMNSET TBLPROPERTIES などの操作、および UNSET TBLPROPERTIES

MODIFY

MSCKOPTIMIZE、およびその他の操作 VACUUM

MODIFY

オペレーション

必要な権限

INSERT INTO

INSERT

INSERT OVERWRITE

INSERT そして DELETE

INSERT REPLACE WHERE/USING/ON

INSERT そして DELETE

動的パーティションの上書き

INSERT そして DELETE

UPDATE

UPDATE

DELETE

DELETE

MERGE INTO

INSERTUPDATE、またはDELETE(一致したアクションによって異なります)

TRUNCATE

DELETE

スキーマ変更を伴う INSERT OVERWRITE、スキーマ進化を伴う INSERT、またはスキーマ進化を伴う MERGE INTO など、スキーマやメタデータを変更する操作

MODIFY

ALTER TABLE ALTER COLUMNADD COLUMNDROP COLUMNSET TBLPROPERTIES などの操作、および UNSET TBLPROPERTIES

MODIFY

MSCKOPTIMIZE、およびその他の操作 VACUUM

MODIFY

制限事項

  • INSERTUPDATE、および DELETE は、テーブルベースのアクセスでのみサポートされます。外部テーブルへのパスベースのアクセスには、MODIFY 特権の使用が必要です。