Aller au contenu principal

Privilèges DML granulaires

info

Bêta

Cette fonctionnalité est en version bêta. Les administrateurs de Workspace peuvent contrôler l’accès à cette fonctionnalité depuis la page Aperçus . Consultez Gérer les aperçus Databricks.

Les privilèges DML granulaires INSERT, UPDATE et DELETE sont des alternatives à privilège minimal à MODIFY sur les tables Unity Catalog. Accordez-les aux principals qui doivent modifier les données de la table, mais pas le schéma de la table ou d'autres métadonnées.

Pour exercer l'un de ces privilèges, un principal doit également disposer des privilèges suivants :

  • SELECT sur la table
  • USE SCHEMA sur le schéma parent
  • USE CATALOG sur le catalogue parent

En raison de l'héritage des privilèges, l'octroi de INSERT, UPDATE ou DELETE sur un catalogue ou un schéma accorde automatiquement le privilège sur toutes les tables actuelles et futures qu'ils contiennent.

Compute requis

Les privilèges DML granulaires nécessitent Databricks Runtime 18.1 ou une version ultérieure. Ils sont pris en charge sur le compute Serverless, les SQL Warehouse et le compute classique en mode d’accès standard. Ils ne sont pas pris en charge sur le compute en mode d’accès dédié. Sur un compute non pris en charge, utilisez plutôt MODIFY.

remarque

Databricks Runtime 18 est plus récent que Databricks Runtime 18.0, 18.1 et 18.2. Les fonctionnalités qui étaient auparavant publiées dans une version numérotée ultérieure sont désormais proposées sous forme de mises à jour datées de Databricks Runtime 18. Pour plus de détails, consultez À propos des notes de version unifiées.

Relation à MODIFIER

MODIFY est un privilège composite, et INSERT, UPDATE et DELETE en sont les enfants. MODIFY accorde un accès complet en écriture aux données d'une table, tandis que chaque privilège DML granulaire accorde un sous-ensemble de cet accès, vous permettant ainsi de déléguer des opérations spécifiques de modification de données sans accorder le privilège MODIFY complet.

Les privilèges composites et enfants sont accordés et révoqués indépendamment : l'octroi de MODIFY n'accorde pas INSERT, UPDATE ou DELETE, et la révocation de MODIFY ne révoque aucun de ceux qui ont été accordés explicitement. Pour plus de détails, consultez Privilèges composites et enfants.

Opérations et privilèges requis

Les privilèges INSERT, UPDATE et DELETE couvrent la plupart des Opérations DML. Les autres opérations continuent de nécessiter MODIFY.

Le tableau suivant montre comment les opérations courantes correspondent aux privilèges DML granulaires. Il ne s’agit pas d’une liste exhaustive.

Opérations

Privilèges requis

INSERT INTO

INSERT

INSERT OVERWRITE

INSERT et DELETE

INSERT REPLACE WHERE/USING/ON

INSERT et DELETE

Remplacement dynamique de partition

INSERT et DELETE

UPDATE

UPDATE

DELETE

DELETE

MERGE INTO

INSERT, UPDATE ou DELETE, selon les actions correspondantes

TRUNCATE

DELETE

Opérations modifiant le schéma ou les métadonnées, telles que INSERT OVERWRITE avec des changements de schéma, INSERT avec l'évolution des schémas, ou MERGE INTO avec l'évolution des schémas

MODIFY

ALTER TABLE opérations, telles que ALTER COLUMN, ADD COLUMN, DROP COLUMN, SET TBLPROPERTIES et UNSET TBLPROPERTIES

MODIFY

D'autres opérations, telles que MSCK, OPTIMIZE et VACUUM

MODIFY

Opérations

Privilèges requis

INSERT INTO

INSERT

INSERT OVERWRITE

INSERT et DELETE

INSERT REPLACE WHERE/USING/ON

INSERT et DELETE

Remplacement dynamique de partition

INSERT et DELETE

UPDATE

UPDATE

DELETE

DELETE

MERGE INTO

INSERT, UPDATE ou DELETE, selon les actions correspondantes

TRUNCATE

DELETE

Opérations modifiant le schéma ou les métadonnées, telles que INSERT OVERWRITE avec des changements de schéma, INSERT avec l'évolution des schémas, ou MERGE INTO avec l'évolution des schémas

MODIFY

ALTER TABLE opérations, telles que ALTER COLUMN, ADD COLUMN, DROP COLUMN, SET TBLPROPERTIES et UNSET TBLPROPERTIES

MODIFY

D'autres opérations, telles que MSCK, OPTIMIZE et VACUUM

MODIFY

Limitations

  • INSERT, UPDATE et DELETE sont uniquement pris en charge pour l’accès basé sur les tables. L’accès aux tables externes basé sur le chemin nécessite l’utilisation du privilège MODIFY.