Implementar a segurança em nível de linha

Aplica-se a:✅ endpoint de análise SQL e Warehouse no Microsoft Fabric

A segurança em nível de linha (RLS) no Fabric Warehouse e no endpoint de análise SQL permite controlar o acesso às linhas em uma tabela de banco de dados com base em funções de usuário e predicados. Para mais informações, veja Segurança em nível de linha em Fabric Data Warehouse.

Este guia orientará você nas etapas para implementar a segurança em nível de linha no Microsoft Fabric Warehouse ou em um ponto de extremidade de análise SQL.

Pré-requisitos

Antes de começar, certifique-se de que você tenha o seguinte:

  1. Um espaço de trabalho do Fabric com uma capacidade ativa ou uma capacidade de avaliação.
  2. Um Fabric Warehouse ou endpoint de análises SQL em um Lakehouse.
  3. Direitos de Administrador, Membro ou Colaborador no espaço de trabalho, ou permissões elevadas no Warehouse ou no endpoint de análise de SQL.

1. Conectar

  1. Entre usando uma conta com acesso elevado ao Warehouse ou ao ponto de extremidade de análise de SQL. (Função de Administrador/Membro/Colaborador no espaço de trabalho ou permissão de Controle no Warehouse ou no endpoint de análise de SQL).
  2. Abra o espaço de trabalho do Fabric e navegue até o Warehouse ou endpoint de análise SQL onde você deseja aplicar a 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 dados e 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 embutidas com valor de tabela.

    -- 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()
    OR USER_NAME() = 'BatchProcess@contoso.com';
    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. Este exercício 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(). Substitua UserName_column por uma coluna na tabela que contém nomes de usuário.

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

    • Opcionalmente, a instrução WHERE também inclui uma exceção para o nome de usuário da identidade gerenciada que manipula a movimentação de dados, por exemplo, BatchProcess@contoso.com.
  6. 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

  1. 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 corresponder na tabela.

    SELECT USER_NAME() 
    
  2. 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
    
  3. Resultados filtrados semelhantes para o usuário serão filtrados juntamente 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. Monitoramento e manutenção da 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.