Partilhar via


Implementar segurança em nível de linha no armazenamento de dados do Microsoft Fabric

Aplica-se a:✅ ponto de extremidade de análise 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 SQL permite controlar o acesso a linhas em uma tabela de banco de dados com base em funções e predicados do usuário. Para obter mais informações, consulte Segurança em nível de linha no data warehouse da malha.

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 SQL.

Pré-requisitos

Antes de começar, certifique-se de que tem o seguinte:

  1. Um espaço de trabalho de malha com capacidade ativa ou de avaliação.
  2. Um Fabric Warehouse ou um ponto de extremidade de análise SQL em um Lakehouse.
  3. Os direitos de Administrador, Membro ou Colaborador no espaço de trabalho ou permissões elevadas no Armazém ou no ponto de extremidade de análise SQL.

1. Ligar

  1. Faça login usando uma conta com acesso elevado no ponto de extremidade de análise SQL ou Warehouse. (Função Administrador/Membro/Colaborador no espaço de trabalho ou Permissões de Controle no Depósito ou no ponto de extremidade de análise SQL).
  2. Abra o espaço de trabalho Malha e navegue até o ponto de extremidade de análise de depósito ou SQL onde você deseja aplicar segurança em nível de linha.

2. Definir políticas de segurança

  1. Determine as funções e predicados que você deseja usar para controlar o acesso aos dados. As funções definem quem pode acessar os dados e os predicados definem os critérios de acesso.

  2. 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 com valor de tabela embutido. Este exercício simples pressupõe que existe uma coluna na sua tabela de dados, UserName_column, que contém o nome de utilizador relevante, preenchida 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 
    
  3. Substitua YourSecurityPolicy pelo nome da política, tvf_securitypredicate pelo nome da função de predicado, sampleschema pelo nome do esquema e sampletable pelo nome da tabela de destino.

  4. Substitua UserName_column por uma coluna na tabela que contenha nomes de usuário.

  5. Substitua WHERE @UserName = USER_NAME(); por uma WHERE cláusula que corresponda ao filtro de segurança baseado em predicado desejado. Por exemplo, isso filtra os dados em que a UserName coluna, mapeada para o @UserName parâmetro, corresponde ao resultado da função do sistema USER_NAME().

  6. Repita estas etapas para criar políticas de segurança para outras tabelas, se necessário.

3. Teste a segurança em nível de linha

  1. Faça login no Fabric como um usuário que é membro de uma função com uma diretiva de segurança associada. Use a consulta a seguir para verificar o valor que deve ser correspondido na tabela.

    SELECT USER_NAME() 
    
  2. Consulte as tabelas do 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
    
  3. 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, consulte Autenticação do Microsoft Entra como alternativa à autenticação SQL no Microsoft Fabric.

4. Monitore e mantenha a segurança em nível de linha

Monitorize e atualize regularmente as suas políticas de segurança ao nível da linha à medida que os seus requisitos de segurança evoluem. Acompanhe as atribuições de função e garanta que os usuários tenham o acesso apropriado.