Partilhar via


Segurança ao nível de coluna na data warehousing do Fabric

Aplica-se a:✅ endpoint de análises SQL e Armazém 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 à coluna para proteger dados confidenciais. Por exemplo, garantir que usuários específicos possam acessar apenas determinadas 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 qualquer camada de aplicativo única. O banco de dados aplica as restrições de acesso sempre que o acesso a dados é tentado, de qualquer aplicativo ou plataforma de relatórios, incluindo o Power BI. Esta restrição torna a sua segurança mais fiável e robusta, reduzindo a área de superfície do seu sistema de segurança geral.

A segurança em nível de coluna só se aplica a consultas em um Armazém de Dados ou endpoint de análise SQL no Fabric. As consultas do Power BI num armazém no modo Direct Lake voltarão ao modo de Consulta Direta para cumprir a segurança ao nível da coluna.

Restringir o acesso a determinadas colunas a determinados utilizadores

Além disso, a segurança em nível de coluna é mais simples do que projetar 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 a nível de coluna é aplicada a um armazém de dados partilhado ou lakehouse acessado através de um endpoint de análise SQL, porque a fonte de dados subjacente não foi alterada.

Apenas a autenticação do Microsoft Entra é suportada. Para obter mais informações, consulte Autenticação do Microsoft Entra como alternativa à autenticação SQL no Microsoft Fabric.

Exemplos

Este exemplo criará uma tabela e limitará as colunas que charlie@contoso.com podem ser vistas na customers tabela.

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 sensível CreditCard :

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

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

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óximo passo