Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
O ABAC entre mecanismos está em versão Beta.
Os motores externos podem ler tabelas do Unity Catalog com políticas de ABAC (controle de acesso baseado em atributos) aplicadas. Isso permite que você aplique filtros de linha ABAC e máscaras de coluna que são aplicados dinamicamente, mesmo ao fazer consultas de fora do Azure Databricks.
Quando um mecanismo externo consulta uma tabela com políticas ABAC anexadas, Azure Databricks usa uma camada de computação especializada sem servidor para filtrar e retornar dados higienizados para o mecanismo externo.
Requirements
Para aplicar controles de acesso granulares em tabelas consultadas por mecanismos externos, você deve concluir as etapas a seguir:
- Habilite o acesso a dados externos no metastore do Catálogo do Unity.
- Conceda ao principal que consulta o privilégio
EXTERNAL USE SCHEMA. - Use uma tabela gerenciada com confirmações de catálogo.
- Autentique usando OAuth M2M (computador a computador) ou um PAT (token de acesso pessoal).
Criar uma tabela Delta gerenciada com confirmações de catálogo
Para criar uma nova tabela Delta gerenciada com confirmações de catálogo (requer Databricks Runtime 16.4 e superior):
CREATE TABLE <catalog>.<schema>.<table> (id INT, name STRING)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported') USING delta;
Para atualizar uma tabela gerenciada existente (requer o Databricks Runtime 18.0 e superior):
ALTER TABLE <catalog>.<schema>.<table>
SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
Depois de criar a tabela, você pode aplicar políticas ABAC, filtros de linha ou máscaras de coluna.
Consulte Criar uma política ou aplicar manualmente filtros de linha e máscaras de coluna.
Ler tabelas com Apache Spark (Delta)
Configure o Apache Spark com Delta-Spark 4.1 ou posterior e o conector do Spark para Unity Catalog 0.4 ou posterior.
"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>",
"spark.sql.catalog.<uc-catalog-name>.auth.type": "oauth",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.catalog.<uc-catalog-name>.ServerSidePlanning.enabled": "true",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.0_2.13:4.1.0,io.delta:delta-iceberg_2.13:4.1.0,io.unitycatalog:unitycatalog-spark_2.13:0.4.0,org.apache.hadoop:hadoop-azure:3.4.2"
Note
Defina ServerSidePlanning.enabled como true para habilitar a aplicação de controle de acesso granular por mecanismos externos.
Substitua as seguintes variáveis:
-
<uc-catalog-name>: o nome do catálogo no Unity Catalog que contém suas tabelas. -
<workspace-url>: a URL do espaço de trabalho do Azure Databricks, incluindo o ID do espaço de trabalho. -
<oauth-token-endpoint>: URL do ponto de extremidade do token OAuth. Consulte como autorizar o acesso de uma entidade de serviço ao Azure Databricks com OAuth. -
<oauth-client-id>: ID do cliente OAuth para a entidade de autenticação. -
<oauth-client-secret>: segredo do cliente OAuth para a entidade de autenticação.
Ler tabelas com Apache Spark (Iceberg)
Configure o Apache Spark com Iceberg-Spark 1.11 ou superior e Apache Spark 4.0 ou superior.
"spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",
"spark.sql.catalog.<uc-catalog-name>": "org.apache.iceberg.spark.SparkCatalog",
"spark.sql.catalog.<uc-catalog-name>.type": "rest",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>/api/2.1/unity-catalog/iceberg-rest/",
"spark.sql.catalog.<uc-catalog-name>.credential": "<oauth-client-id>:<oauth-client-secret>",
"spark.sql.catalog.<uc-catalog-name>.oauth2-server-uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.warehouse": "<uc-catalog-name>",
"spark.sql.catalog.<uc-catalog-name>.cache-enabled": "false",
"spark.sql.defaultCatalog": "<uc-catalog-name>"
Substitua as seguintes variáveis:
-
<uc-catalog-name>: o nome do catálogo no Unity Catalog que contém suas tabelas. -
<workspace-url>: a URL do espaço de trabalho do Azure Databricks, incluindo o ID do espaço de trabalho. -
<oauth-token-endpoint>: URL do ponto de extremidade do token OAuth. Consulte como autorizar o acesso de uma entidade de serviço ao Azure Databricks com OAuth. -
<oauth-client-id>: ID do cliente OAuth para a entidade de autenticação. -
<oauth-client-secret>: segredo do cliente OAuth para a entidade de autenticação.
Consultar dados
Você pode consultar a tabela usando AS APIs do Apache Spark SQL ou DataFrame. Azure Databricks impõe políticas de acesso refinadas nos bastidores.
SELECT * FROM <uc-catalog-name>.<schema>.<table>;
Warning
Gravações concorrentes durante o planejamento de consultas podem fazer com que a mesma tabela seja lida a partir de snapshots diferentes em consultas com autojunção e com múltiplas varreduras, o que pode resultar em resultados incorretos.
Custos de computação sem servidor
O ABAC entre mecanismos usa recursos de computação sem servidor para aplicar políticas de acesso granulares no servidor. Os clientes são cobrados por esses recursos. Para obter informações sobre preços, consulte o preço do produto Beta.
Os usuários com acesso à tabela do sistema de cobrança podem consultar system.billing.usage para ver quanto foram cobrados. Por exemplo, a consulta a seguir divide os custos da computação por usuário:
SELECT usage_date,
sku_name,
identity_metadata.run_as,
SUM(usage_quantity) AS `DBUs consumed by cross-engine ABAC`
FROM system.billing.usage
WHERE usage_date BETWEEN '2026-06-01' AND '2026-07-01'
AND billing_origin_product = 'EXTERNAL_COMPATIBILITY'
GROUP BY 1, 2, 3 ORDER BY 1;
Limitações
- Somente leituras de motores externos são suportadas quando controles de acesso granulares (FGAC) são aplicados. Para escrever, você deve excluir o principal de escrita da política ABAC.
- Não há suporte para exibições dinâmicas.
- Não há suporte para projetar
VARIANTcolunas. - Não há suporte para filtragem em
BINARYcolunas. - Não há suporte para funções de mascaramento de coluna cujo tipo de retorno difere do tipo de coluna original.
- Grandes agregações podem apresentar degradação de desempenho.