Criar uma política de dados para segurança em nível de linha
Use uma política de dados para aplicar segurança em nível de linha a uma ou mais tabelas na conexão virtual. Uma política de dados filtra os dados, garantindo que os usuários vejam apenas os dados que deveriam ver. As políticas de dados se aplicam a conexões em tempo real e de extração.
Sobre políticas de dados
Uma política de dados tem três componentes:
- As tabelas às quais se aplica, chamadas de tabelas de políticas. Essas são as tabelas filtradas.
- As colunas mapeadas que definem os relacionamentos entre tabelas (por exemplo, entre tabelas de direitos e de fatos) e entre colunas de tabela e de política. Uma coluna de política é a usada para filtrar dados.
- A condição da política, que é uma expressão ou cálculo avaliado para cada linha no momento da consulta. Se a condição da política for TRUE, a linha será mostrada na consulta.
Ao criar uma política de dados, você precisa de uma coluna para filtrar os dados. Essa coluna é chamada de coluna de política. Os dados são filtrados pela condição da política, geralmente usando uma função do usuário, como USERNAME() ou FULLNAME().
Se sua tabela de políticas inclui uma coluna que você pode filtrar, use essa coluna como sua coluna de políticas.
Quando uma tabela de política não inclui essa coluna, use uma tabela de direitos com uma coluna que você pode usar para filtrar os dados. Uma tabela de direitos é uma tabela que inclui uma coluna de política que você pode usar para filtrar tabelas de política, e outra coluna que você pode relacionar (mapear) a uma coluna em uma tabela de política (conforme mostrado na imagem de exemplo de política de dados acima).
Filtrar com uma coluna de política de uma tabela de política
A maneira mais comum de filtrar dados é usar uma coluna na tabela que contém os dados que você deseja filtrar. Use essa coluna como uma coluna de política e, em seguida, mapeie as colunas de tabela apropriadas para a coluna de política.
Para usar uma coluna de política para filtrar seus dados, primeiro, adicione tabelas à política no painel esquerdo. Para adicionar uma tabela, execute um dos seguintes procedimentos:
- Clique duas vezes no nome da tabela.
- Clique na seta suspensa perto do nome da tabela e selecione Gerenciar tabela com política.
- Ou arraste a tabela para a direita e solte-a na Adicionar como tabela de política.
Depois que uma tabela é adicionada a uma política, um ícone de escudo aparece à direita do nome da tabela no painel esquerdo, indicando que é uma tabela de política.
Em seguida, mapeie as colunas para criar um relacionamento entre o nome da coluna na tabela e o nome da coluna de política. Use o nome da coluna da política na condição da política de dados para controlar o acesso aos dados no nível da linha para os usuários:
- Clique em +Adicionar coluna ao mapa para adicionar uma ou mais colunas que você usará para filtrar os dados.
- Nomeie a coluna de política. Você usará esse nome na condição da política.
- Para cada tabela à qual a política se aplica, use o menu suspenso para selecionar a coluna da tabela que mapeia para a coluna da política.
- Repita esse processo para quantas colunas de política você deseja usar na condição de política.
Dica: em vez de usar o botão +Adicionar coluna ao mapa, você pode começar a digitar o cálculo na área de condição da política e usar o preenchimento automático para escolher o nome da coluna, que então preencherá as informações da coluna da política na Etapa 1.
Um exemplo usando uma coluna de política de uma tabela de política
- A tabela Vendas tem uma coluna [Vendedor] e a tabela Região possui uma coluna [RepVendas]. Os dados de Vendedor e RepVendas correspondem ao nome completo dos usuários do Tableau em seu site.
- Você quer filtrar os dados de Vendas e Região por Vendedor, então nomeie a coluna de política "Vendedor" e, em seguida, mapeie a coluna Vendedor de Vendas e a coluna RepVendas de Região para a coluna de política Vendedor.
- Em seguida, escreva a condição de política para filtrar ambas as tabelas. Use a coluna de política [Vendedor] e a função de usuário FULLNAME() para que cada usuário possa ver apenas seus próprios dados.
Filtrar com coluna de política de uma tabela de direitos
As tabelas de direitos são usadas quando sua tabela de políticas não contém uma coluna pela qual você pode filtrar. Você pode usar a tabela de direitos para mapear uma coluna na tabela de dados para uma coluna na tabela de direitos. Observe o seguinte:
- Certifique-se de incluir a tabela de direitos como uma tabela na conexão virtual. Você pode usar uma tabela de qualquer conexão ou banco de dados como uma tabela central de direitos que protege tabelas em muitos outros bancos de dados. Em alguns casos, uma tabela de direitos que está no mesmo banco de dados das tabelas que você está protegendo pode ser um risco de segurança em potencial devido ao potencial de expor dados de funcionários. E ter uma tabela de direitos em um banco de dados diferente pode facilitar o controle de permissões, por exemplo, conceder a alguém acesso a um banco de dados.
- Se não quiser que os usuários de conexão virtual vejam a tabela de direitos, você pode alternar a configuração na coluna Visibilidade na guia Tabelas para ocultá-la. Quando oculta, a tabela de direitos ainda está disponível para filtragem de política, mas não pode ser usada em visualizações ou fontes de dados de pasta de trabalho.
Observação: a conexão direta a uma saída de fluxo (arquivo .hyper) não é compatível com a tabela de direitos. A saída do fluxo deve gravar diretamente no banco de dados.
Para usar uma tabela de direitos para filtrar seus dados:
- Adicione as tabelas de dados às quais deseja que a política de dados se aplique. Execute um destes procedimentos:
- Clique duas vezes no nome da tabela.
- Clique na seta suspensa perto do nome da tabela e selecione Gerenciar tabela com política.
- Ou arraste a tabela para a direita e solte-a na Adicionar como tabela de política.
- Depois que uma tabela é adicionada a uma política, um ícone de escudo aparece à direita do nome da tabela no painel esquerdo, indicando que é uma tabela de política.
- Selecione a tabela de direitos e:
- Clique na seta suspensa e selecione Usar como tabela de direito.
- Ou arraste a tabela para a direita e solte-a em Adicionar como tabela de direito.
- Para cada tabela à qual a política se aplica, clique no menu suspenso e selecione a coluna para mapear a tabela na política para a tabela de direitos.
Um exemplo usando uma coluna de política de uma tabela de direitos
- Os dados que você deseja filtrar têm uma coluna EMP_ID, mas não uma coluna de nome de funcionário. No entanto, você tem uma segunda tabela que inclui colunas para EMP_ID e FULL NAME do funcionário. E os valores na coluna FULL NAME do funcionário correspondem ao nome completo dos usuários do Tableau em seu site.
- Você pode adicionar a tabela Funcionários à política como uma tabela de direitos e, em seguida, mapear o nome da coluna da tabela de políticas EMP_ID para o nome da coluna de direitos EMP_ID de cada tabela.
- Em seguida, use a função FULLNAME() na condição de política para combinar o nome completo do usuário do Tableau Server com a coluna [FULL NAME] da tabela de direitos (que é a coluna de política) para que cada usuário possa ver apenas os próprios dados.
Escrever uma condição de política
A última etapa na criação de uma política de dados é escrever uma condição de política, que é um cálculo ou expressão usada para definir o acesso em nível de linha. As condições de política costumam ser usadas para limitar o acesso a usuários ou grupos por meio de funções de usuário.
Uma condição de política:
- É obrigatório em uma política de dados.
- Deve ser avaliada como verdadeira ou falsa.
- Mostra as linhas quando a condição da política é verdadeira.
Quando você fecha uma guia de política, ela não descarta seu trabalho.
Exemplos de condições de política
Mostra apenas as linhas em que o valor da coluna Região é Norte:
[Region] = "North"
Permite que um usuário conectado veja as linhas em que o nome do usuário corresponde ao valor em EmployeeName:
FULLNAME() = [EmployeeName]
Permite que os membros do grupo Gerentes vejam todas as linhas, enquanto os usuários podem ver apenas as linhas em que seu nome de usuário corresponde ao valor na coluna employee_name:
ISMEMBEROF('Managers') OR USERNAME() = [employee_name]
Funções do Tableau compatíveis com condições de política
As condições de política são compatíveis com um subconjunto de funções do Tableau:
- Lógico (exceto relacionado a nulos)
- Cadeia de caracteres
- Usuário
- Data
- Número: MIN, MID, MAX
Para ver quais funções específicas são suportadas, no editor de conexão virtual, na guia Políticas de Dados, consulte o painel Referência à direita.
Observação: se a conexão virtual tiver uma política de dados que contenha funções do usuário(O link abre em nova janela) (por exemplo, USERNAME()
) e você se conecta a ela de uma pasta de trabalho ou fonte de dados e cria uma extração lá, a extração conterá apenas as linhas que correspondem à política de dados de conexão virtual no momento em que a extração é criada. Para aproveitar uma conexão virtual com funções de usuário na política de dados, use uma conexão ativa da pasta de trabalho ou fonte de dados para a conexão virtual em vez de uma extração.
Quem pode fazer isso
Para criar uma política de dados, você deve
- ter credenciais para o banco de dados ao qual a conexão virtual se conecta e
- ser um servidor ou administrador de site ou um Creator.
Próximas etapas
Depois de criar uma política de dados, a próxima etapa é verificar se ela funciona conforme o esperado. Consulte Testar a segurança em nível de linha com visualização como usuário . Ou, se você estiver pronto para compartilhar a conexão virtual e suas políticas de dados com outras pessoas, consulte Publicar uma conexão virtual e definir permissões.
Recursos
Para obter informações detalhadas sobre cálculos, consulte Como entender os cálculos no Tableau(O link abre em nova janela) no Tableau Desktop e na ajuda de Criação na Web.
Para obter informações sobre as funções do usuário, consulte Funções do usuário(O link abre em nova janela) no Tableau Desktop e na ajuda de Criação na Web.
Para obter informações sobre outras opções de segurança em nível de linha no Tableau, consulte Visão geral das opções de segurança em nível de linha no Tableau(O link abre em nova janela) na ajuda do Tableau Server.