Published on

July 21, 2021

Implementando Segurança de Nível de Linha no SQL Server

À medida que os dados continuam a crescer, garantir a segurança das informações sensíveis se torna uma prioridade máxima. No SQL Server, a segurança de nível de linha fornece uma maneira de restringir o acesso a dados específicos com base em funções e permissões de usuário. Isso permite que as organizações controlem quais dados podem ser visualizados por diferentes usuários sem criar relatórios separados para cada usuário.

A segurança de nível de linha no SQL Server pode ser implementada usando vários métodos. Uma abordagem é criar funções fixas com base em categorias específicas de dados, como territórios de vendas. Os usuários ou grupos do Active Directory podem então ser atribuídos a essas funções no Power BI Service. Este método funciona bem para requisitos de segurança estáticos.

No entanto, para necessidades de segurança mais dinâmicas, pode ser usado uma abordagem baseada em tabelas. Este método envolve a cruzamento de referência do usuário que está conectado ao Power BI Service com uma tabela no banco de dados para determinar seu acesso a pontos de dados específicos. Isso permite mais flexibilidade e escalabilidade no gerenciamento da segurança de nível de linha.

Vamos dar uma olhada em um exemplo para entender melhor como a segurança de nível de linha baseada em tabelas funciona. Vamos usar o Power BI e o banco de dados WideWorldImportersDW como nossas fontes de dados.

Primeiro, precisamos identificar o usuário que está interagindo com o relatório. No Power BI, as funções DAX USERNAME() e USERPRINCIPALNAME() fornecem informações do usuário. Essas funções retornam o nome de domínio e o nome de usuário do usuário conectado ao Power BI Desktop, e o endereço de e-mail de login do usuário ao revisar o relatório ou painel online.

Em seguida, criamos uma tabela de banco de dados que irá direcionar nossa segurança de nível de linha. Essa tabela deve conter o nome de usuário e o valor da categoria relacionada que diferencia o acesso. Por exemplo, podemos ter um campo de território de vendas que determina quais dados um usuário pode acessar. A tabela precisa ser preenchida com os usuários apropriados e seus respectivos pontos de acesso.

No Power BI Desktop, adicionamos a tabela de permissões do usuário ao modelo e estabelecemos um relacionamento entre a tabela de fatos ou dimensão de categoria e a tabela de permissões do usuário. Esse relacionamento é baseado no campo de dados específico que determina o acesso, como o território de vendas.

Para concluir o processo de configuração, criamos uma função no Power BI Desktop que verifica o User_Name_ID na tabela de permissões do usuário em relação à função DAX UserName. Isso garante que o nome de usuário correto seja correspondido com a tabela de permissões.

Depois de publicar o arquivo do Power BI no Power BI Service, podemos configurar ainda mais a segurança de nível de linha adicionando usuários ou listas de distribuição às configurações de segurança. Isso permite que o Power BI Service reconheça a lista de usuários, mas não concede acesso aos dados.

Finalmente, podemos testar a segurança de nível de linha usando o recurso Testar como Função no Power BI Service. Isso nos permite ver como as configurações de segurança restringem o acesso a pontos de dados específicos. O painel e os relatórios só exibirão os dados aos quais o usuário tem permissão para visualizar.

A implementação da segurança de nível de linha baseada em tabelas no SQL Server fornece uma abordagem mais flexível e escalável para o gerenciamento do acesso aos dados. Este método permite que as organizações limitem a visualização de dados sensíveis pelos usuários e pode ser integrado a outros processos de segurança.

Ao utilizar a segurança de nível de linha no SQL Server, as organizações podem garantir que apenas usuários autorizados tenham acesso a dados específicos, sem a necessidade de criar relatórios separados para cada usuário. Isso ajuda a manter a privacidade e a segurança dos dados, ao mesmo tempo em que simplifica o processo de geração de relatórios.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.