Segurança em nível de coluna no data warehousing da malha
Aplica-se a:✅ ponto de extremidade de análise 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 à 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 ponto de extremidade de análise SQL ou Warehouse no Fabric. As consultas do Power BI em um depósito no modo Direct Lake retornarão ao modo de Consulta Direta para respeitar a segurança em nível de 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 GRANT T-SQL. 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 a um armazém compartilhado ou lakehouse acessado por meio de um ponto de extremidade 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'.