Compartilhar via


Segurança em Nível de Coluna no armazenamento de dados do Fabric

Aplica-se a: ponto de extremidade de análise do SQL e Warehouse no Microsoft Fabric

A segurança em nível de coluna simplifica o design e a codificação da segurança em seu aplicativo, permitindo que você restrinja o acesso às colunas para proteger dados confidenciais. Por exemplo, garantir que usuários específicos possam acessar apenas certas colunas de uma tabela pertinente ao seu departamento.

Segurança em Nível de Coluna no nível de dados

A lógica de restrição de acesso está localizada na camada de banco de dados, não em uma camada de aplicativo. O banco de dados aplica as restrições de acesso sempre que há uma tentativa de acesso aos dados, de qualquer aplicativo ou plataforma de relatórios, incluindo o Power BI. Essa restrição torna a segurança mais robusta e confiável, reduzindo a área de superfície do sistema de segurança como um todo.

A segurança em nível de coluna só se aplica a consultas em um ponto de extremidade de análise do SQL ou Warehouse no Fabric. As consultas do Power BI em um armazém no modo Direct Lake retornarão ao modo Direct Query para cumprir a segurança em nível de coluna.

Restringir o acesso a determinadas colunas a determinados usuários

Além disso, a Segurança em Nível de Coluna é mais simples e do que criar exibições adicionais para filtrar colunas para impor restrições de acesso aos usuários.

Implemente a segurança em nível de coluna com a instrução T-SQL GRANT. Para simplificar o gerenciamento, a atribuição de permissões a funções é preferível ao uso de indivíduos.

A segurança em nível de coluna é aplicada ao warehouse ou lakehouse compartilhado, porque a fonte de dados subjacente não foi alterada.

Somente a autenticação do Microsoft Entra tem suporte.

Exemplos

Este exemplo criará uma tabela e limitará as colunas que charlie@contoso.com pode ver na tabela customers.

CREATE TABLE dbo.Customers
  (CustomerID int,
   FirstName varchar(100) NULL,
   CreditCard char(16) NOT NULL,
   LastName varchar(100) NOT NULL,
   Phone varchar(12) NULL,
   Email varchar(100) NULL);

Permitiremos que Charlie acesse apenas as colunas relacionadas ao cliente, mas não a coluna confidencial CreditCard:

GRANT SELECT ON Customers(CustomerID, FirstName, LastName, Phone, Email) TO [Charlie@contoso.com];

As consultas executadas como charlie@contoso.com falharão se incluírem a coluna CreditCard:

SELECT * FROM Customers;
Msg 230, Level 14, State 1, Line 12
The SELECT permission was denied on the column 'CreditCard' of the object 'Customers', database 'ContosoSales', schema 'dbo'.

Próxima etapa