Pular para o conteúdo principal

Privilégios DML detalhados

info

Beta

Esse recurso está em Beta. Os administradores do workspace podem controlar o acesso a esse recurso na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.

Os privilégios DML detalhados INSERT, UPDATE e DELETE são alternativas de privilégio mínimo ao MODIFY em tabelas do Unity Catalog. Conceda-os a principais que devem alterar os dados da tabela, mas não o esquema da tabela ou outros metadados.

Para exercer qualquer um desses privilégios, um principal também deve ter os seguintes privilégios:

  • SELECT na tabela
  • USE SCHEMA no esquema pai
  • USE CATALOG no catálogo pai

Devido à herança de privilégios, conceder INSERT, UPDATE ou DELETE em um catálogo ou esquema concede automaticamente o privilégio em todas as tabelas atuais e futuras que eles contêm.

Requisitos de compute

Os privilégios DML refinados requerem o Databricks Runtime 18.1 ou acima. Eles são compatíveis com compute serverless, SQL warehouses e compute clássico no modo de acesso padrão. Eles não são compatíveis com compute em modo de acesso dedicado. Em compute não compatível, use MODIFY em vez disso.

nota

O Databricks Runtime 18 é mais recente que o Databricks Runtime 18.0, 18.1 e 18.2. Recursos que anteriormente seriam lançados como uma versão numerada posterior agora são lançados como atualizações datadas para o Databricks Runtime 18. Para obter detalhes, consulte Sobre as notas sobre a versão unificadas.

Relacionamento para MODIFICAR

MODIFY é um privilégio composto, e INSERT, UPDATE e DELETE são seus filhos. MODIFY concede acesso total de gravação aos dados de uma tabela, enquanto cada privilégio DML detalhado concede um subconjunto desse acesso, para que você possa delegar operações específicas de alteração de dados sem conceder o privilégio MODIFY completo.

Privilégios compostos e filhos são concedidos e revogados independentemente: conceder MODIFY não concede INSERT, UPDATE ou DELETE, e revogar MODIFY não revoga nenhum deles que tenha sido concedido explicitamente. Para mais detalhes, consulte Privilégios compostos e filhos.

Operações e privilégios necessários

Os privilégios INSERT, UPDATE e DELETE cobrem a maioria das operações DML. Outras operações continuam a exigir MODIFY.

A tabela a seguir mostra como as operações comuns são mapeadas para os privilégios DML refinados. Esta não é uma lista abrangente.

Operação

Privilégios necessários

INSERT INTO

INSERT

INSERT OVERWRITE

INSERT e DELETE

INSERT REPLACE WHERE/USING/ON

INSERT e DELETE

Substituição de partição dinâmica

INSERT e DELETE

UPDATE

UPDATE

DELETE

DELETE

MERGE INTO

INSERT, UPDATE ou DELETE, dependendo das ações correspondentes

TRUNCATE

DELETE

Operações que alteram o esquema ou metadados, como INSERT OVERWRITE com alterações de esquema, INSERT com evolução do esquema ou MERGE INTO com evolução do esquema

MODIFY

ALTER TABLE operações, como ALTER COLUMN, ADD COLUMN, DROP COLUMN, SET TBLPROPERTIES e UNSET TBLPROPERTIES

MODIFY

Outras operações, como MSCK, OPTIMIZE e VACUUM

MODIFY

Operação

Privilégios necessários

INSERT INTO

INSERT

INSERT OVERWRITE

INSERT e DELETE

INSERT REPLACE WHERE/USING/ON

INSERT e DELETE

Substituição de partição dinâmica

INSERT e DELETE

UPDATE

UPDATE

DELETE

DELETE

MERGE INTO

INSERT, UPDATE ou DELETE, dependendo das ações correspondentes

TRUNCATE

DELETE

Operações que alteram o esquema ou metadados, como INSERT OVERWRITE com alterações de esquema, INSERT com evolução do esquema ou MERGE INTO com evolução do esquema

MODIFY

ALTER TABLE operações, como ALTER COLUMN, ADD COLUMN, DROP COLUMN, SET TBLPROPERTIES e UNSET TBLPROPERTIES

MODIFY

Outras operações, como MSCK, OPTIMIZE e VACUUM

MODIFY

Limitações

  • INSERT, UPDATE e DELETE só são compatíveis com acesso baseado em tabela. O acesso baseado em caminho a tabelas externas requer o uso do privilégio MODIFY .