Implementar a segurança em nível de linha no armazenamento de dados do Microsoft Fabric
Aplica-se a:✅ ponto de extremidade de análise do SQL e Warehouse no Microsoft Fabric
A segurança em nível de linha (RLS) no Fabric Warehouse e no ponto de extremidade de análise do SQL permite controlar o acesso a linhas em uma tabela de banco de dados com base em funções e predicados de usuário. Para obter mais informações, consulte Segurança em nível de linha no data warehouse do Fabric.
Este guia orientará você pelas etapas para implementar a segurança em nível de linha no Microsoft Fabric Warehouse ou no ponto de extremidade de análise do SQL.
Pré-requisitos
Antes de começar, certifique-se de que você tenha o seguinte:
- Um workspace do Fabric com capacidade ativa ou capacidade de avaliação.
- Um Fabric Warehouse ou ponto de extremidade de análise do SQL em um Lakehouse.
- Os direitos de Administrador, Membro ou Colaborador no espaço de trabalho ou permissões elevadas no Warehouse ou no ponto de extremidade de análise do SQL.
1. Conectar
- Faça logon usando uma conta com acesso elevado no Warehouse ou ponto de extremidade de análise do SQL. (Função administrador/membro/colaborador no espaço de trabalho ou permissões de controle no Warehouse ou no ponto de extremidade de análise do SQL).
- Abra o espaço de trabalho do Fabric e navegue até o Warehouse ou ponto de extremidade de análise do SQL em que você deseja aplicar a segurança em nível de linha.
2. Definir políticas de segurança
Determine as funções e predicados que você deseja usar para controlar o acesso aos dados. As funções definem quem pode acessar dados e predicados definem os critérios de acesso.
Crie predicados de segurança. Predicados de segurança são condições que determinam quais linhas um usuário pode acessar. Você pode criar predicados de segurança como funções embutidas com valor de tabela. Este exercício simples pressupõe que há uma coluna em sua tabela de dados,
UserName_column
, que contém o nome de usuário relevante, preenchido pela função do sistema USER_NAME().-- Creating schema for Security CREATE SCHEMA Security; GO -- Creating a function for the SalesRep evaluation CREATE FUNCTION Security.tvf_securitypredicate(@UserName AS varchar(50)) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS tvf_securitypredicate_result WHERE @UserName = USER_NAME(); GO -- Using the function to create a Security Policy CREATE SECURITY POLICY YourSecurityPolicy ADD FILTER PREDICATE Security.tvf_securitypredicate(UserName_column) ON sampleschema.sampletable WITH (STATE = ON); GO
Substitua
YourSecurityPolicy
pelo nome da política,tvf_securitypredicate
pelo nome da função de predicado,sampleschema
pelo nome do esquema esampletable
pelo nome da tabela de destino.Substitua
UserName_column
por uma coluna na tabela que contém nomes de usuário.Substitua
WHERE @UserName = USER_NAME();
por uma cláusulaWHERE
que corresponda ao filtro de segurança baseado em predicado desejado. Por exemplo, isso filtra os dados em que a colunaUserName
, mapeada para o parâmetro@UserName
, corresponde ao resultado da função do sistema USER_NAME().Repita essas etapas para criar políticas de segurança para outras tabelas, se necessário.
3. Testar a segurança em nível de linha
Faça logon no Fabric como um usuário que é membro de uma função com uma política de segurança associada. Use a consulta a seguir para verificar o valor que deve ser correspondido na tabela.
SELECT USER_NAME()
Consulte as tabelas de banco de dados para verificar se a segurança em nível de linha está funcionando conforme o esperado. Os usuários só devem ver dados que satisfaçam o predicado de segurança definido em sua função. Por exemplo:
SELECT * FROM sampleschema.sampletable
Resultados filtrados semelhantes para o usuário serão filtrados com outros aplicativos que usam a autenticação do Microsoft Entra para acesso ao banco de dados. Para obter mais informações, confira Autenticação do Microsoft Entra como uma alternativa para a autenticação SQL no Microsoft Fabric.
4. Monitorar e manter a segurança em nível de linha
Monitore e atualize regularmente suas políticas de segurança em nível de linha à medida que seus requisitos de segurança evoluem. Controle as atribuições de função e verifique se os usuários têm o acesso apropriado.