Privilégios analíticos em SAP HANA: Como criar?

⚡ Resumo Inteligente

Privilégios analíticos em SAP O HANA adiciona autorização em nível de linha além dos privilégios de objeto, de modo que dois usuários que consultam a mesma visualização de informações veem apenas os registros permitidos por suas restrições atribuídas. SAP Estúdio Hana.

  • 🔘 Objetivo: Um privilégio de objeto abre uma visualização completa, enquanto um privilégio analítico filtra as linhas que a visualização retorna.
  • ☑️ Escopo: As visualizações de atributos, visualizações analíticas e visualizações de cálculo podem ser protegidas por um privilégio analítico.
  • restrições: Os valores dentro de um mesmo atributo combinam-se com o operador OR, e as restrições em atributos diferentes combinam-se com o operador AND.
  • 🧪 Exemplo: Um privilégio na visão de cálculo CA_FI_LEDGER limita o usuário ABHI_TEST à empresa 1000.
  • 🛠️ Atribuição: A restrição só se aplica após a validação, ativação, atribuição ao usuário ou função e implantação.
  • 📈 direção: Os privilégios baseados em XML estão obsoletos, portanto, as novas restrições são escritas como privilégios analíticos SQL.

Privilégios analíticos que restringem o acesso a dados em nível de linha em SAP HANA

O que são privilégios analíticos em SAP HANA?

Os privilégios analíticos restringem o acesso do usuário aos dados que ele está autorizado a visualizar, sendo, portanto, uma parte essencial de... SAP Segurança HANA.

Os privilégios SQL concedem autorização em nível de objeto, não em nível de registro. Um usuário que possui o privilégio SELECT em uma view pode ler todas as linhas dela. Quando uma restrição em nível de linha é necessária, utiliza-se um privilégio analítico.

Os privilégios analíticos concedem autorização para visualizar as seguintes informações.

Um privilégio analítico é criado abaixo e atribuído ao usuário “ABHI_TEST”, para que ele possa visualizar apenas os dados da empresa com valor 1000. Ambos os privilégios são necessários em conjunto: o privilégio de objeto abre a visualização e o privilégio analítico decide quais linhas são exibidas.

Como criar um privilégio analítico em SAP HANA

Os seis passos abaixo são executados em SAP HANA Studio, desde a criação do privilégio até o teste com um segundo usuário.

Passo 1) Acesse Privilégios Analíticos. Clique com o botão direito do mouse no pacote de Modelagem e selecione Novo –> Privilégios Analíticos, conforme mostrado abaixo.

Nova opção "Privilégios Analíticos" no menu de contexto do pacote de Modelagem.

Passo 2) A nova janela pop-up será exibida. Insira os detalhes de privilégio analítico mostrados abaixo.

  1. Insira o nome e o rótulo do privilégio analítico.
  2. O nome do pacote é selecionado automaticamente.
  3. A opção de seleção cria um novo privilégio.

Nova caixa de diálogo de privilégios analíticos com os campos nome, rótulo e pacote.

Na etapa seguinte, o editor de privilégios analíticos é exibido para adicionar e editar privilégios.

Passo 3) Clique no botão 'OK'. O editor de privilégios analíticos será aberto e o modelo de referência será selecionado primeiro.

  1. A seção Geral exibe o nome e o rótulo.
  2. Clique no botão “Adicionar” na seção Modelos de Referência, conforme mostrado abaixo.
  3. Selecione a visão de cálculo (CA_FI_LEDGER) criada anteriormente.

Botão Adicionar na seção Modelos de Referência do editor de privilégios analíticos.

A validade e a restrição de atributos são então definidas no mesmo editor.

  1. Clique no botão Adicionar para validar o privilégio.
  2. Atribua a validade do privilégio.
  3. Clique no botão Adicionar para selecionar o atributo que contém a restrição.
  4. Selecione o atributo Empresa.
  5. Clique no botão Adicionar para atribuir um valor a esse atributo.
  6. Atribua o valor selecionando o tipo ou operador e o valor. Aqui, o usuário está restrito aos dados da visualização de cálculo apenas para a empresa 1000, conforme mostrado abaixo.

Editor de privilégios analíticos com modelo de referência, validade e restrição da empresa

Valide e ative o privilégio analítico. Ele será criado na pasta "Privilégios Analíticos" dentro do pacote "Modelagem", conforme mostrado abaixo.

Privilégio analítico ativado listado na pasta Privilégios Analíticos

Passo 4) Atribua o privilégio analítico ao usuário “ABHI_TEST”, que já possui privilégios no pacote de Modelagem. Double-Clique no usuário “ABHI_TEST” em Segurança -> Usuários.

  1. Selecione a guia Privilégios Analíticos.
  2. Clique no botão “+”.
  3. Uma janela pop-up para Selecionar Privilégios Analíticos é exibida. Insira o nome do privilégio analítico criado anteriormente.
  4. Selecione o privilégio analítico.
  5. Clique no botão OK, conforme mostrado abaixo.

Selecione a opção Privilégios Analíticos na janela pop-up da tela de manutenção do usuário.

O privilégio analítico é adicionado ao usuário, conforme mostrado abaixo.

Aba "Privilégios Analíticos" do usuário ABHI_TEST após a adição do privilégio.

Passo 5) Implemente a alteração para o usuário clicando no botão "Implantar". Uma mensagem será exibida informando que o usuário 'ABHI_TEST' foi alterado, conforme mostrado abaixo.

Mensagem de confirmação de implantação informando que o usuário ABHI_TEST foi alterado.

Passo 6) Verifique o privilégio analítico. Faça login como “ABHI_TEST” no sistema HANAUSER para confirmar se a atribuição funciona.

  1. Selecione o sistema atual HDB (HANAUSER) e clique com o botão direito do mouse.
  2. Selecione “Adicionar sistema com usuário diferente” e, em seguida, insira o nome de usuário e a senha para “ABHI_TEST”, conforme mostrado abaixo.
  3. Um sistema HDB (ABHI_TEST) foi adicionado à lista de sistemas.

A opção Adicionar Sistema com Usuário Diferente foi usada para fazer login como ABHI_TEST.

O usuário ABHI_TEST não tem acesso total aos dados da visão de cálculo criada por HANAUSER, porque HANAUSER criou um privilégio analítico que restringe essa visão à empresa 1000 e o atribuiu a ABHI_TEST.

Acesse a pasta Conteúdo -> selecione o pacote -> visualização de cálculo (CA_FI_LEDGER) -> clique com o botão direito do mouse -> Visualização de dados. A tela de visualização de dados será exibida conforme abaixo.

Pré-visualização dos dados da visualização de cálculo restrita à empresa 1000

Os dados na visualização de cálculo estão restritos ao código de empresa 1000, o que confirma que o privilégio analítico está ativo para esse usuário.

Comparação dos privilégios analíticos de XML clássico e SQL

Existem dois tipos de privilégio analítico, e a escolha é importante para qualquer novo desenvolvimento. O editor mostrado acima cria o privilégio clássico baseado em XML. Os privilégios analíticos SQL foram introduzidos em SAP HANA 1.0 SPS 10 e expressa a mesma restrição que uma condição de filtro SQL.

Aspecto Clássico (baseado em XML) privilégio analítico SQL
Definição Mantido graficamente no modelador e armazenado como um objeto XML em tempo de design. Definido por uma condição de filtro SQL, de forma que a lógica complexa permaneça legível.
Condições Restrições de atributos com operadores simples. Expressões SQL completas, incluindo condições aninhadas e combinadas.
Status Obsoleto a partir de SAP HANA 2.0 SPS 02. Recomendado para cada novo privilégio.
Disponibilidade Não disponível em SAP HANA Cloud. Suportado em SAP HANA 2.0 e SAP HANA Cloud.

O SAP O modelador HANA inclui uma atividade de migração que converte privilégios clássicos baseados em XML em privilégios baseados em SQL, evitando que as restrições existentes precisem ser reescritas manualmente. SAP No HANA Cloud, o privilégio se torna um artefato de tempo de design dentro de um contêiner HDI e chega ao usuário por meio de uma função, em vez de por meio do editor de usuários.

Como as restrições de privilégio analítico são avaliadas

Saber como as condições se combinam evita restrições que resultam em resultados excessivos ou nulos.

  • Vários valores listados para um atributo são combinados com um operador lógico. ORAssim, um usuário pode ver a empresa 1000 ou a empresa 2000.
  • Restrições em diferentes atributos são combinadas com uma lógica EPortanto, tanto a empresa quanto o país precisam ser compatíveis.
  • Quando um usuário possui vários privilégios analíticos na mesma visualização, os resultados são somados, o que amplia o acesso em vez de restringi-lo.
  • Uma restrição estática armazena valores fixos, enquanto uma restrição dinâmica lê os valores permitidos em tempo de execução a partir de um procedimento, de modo que um privilégio pode servir a vários usuários.

Uma visão só é verificada quando sua propriedade Apply Privileges especifica o tipo de privilégio, e a verificação é executada em conjunto com o privilégio de objeto SELECT. As visões de coluna geradas pela ativação residem no esquema _SYS_BIC, e as restrições efetivas de um usuário podem ser lidas na visão de sistema EFFECTIVE_STRUCTURED_PRIVILEGES.

Erros comuns de privilégio analítico e suas soluções

A maioria dos problemas de autorização em uma visualização de informações decorre de uma das situações abaixo.

  • Erro de não autorizado na visualização. O usuário possui privilégio analítico, mas não privilégio SELECT na visualização de coluna gerada ou no esquema subjacente. Conceda ambos.
  • A pré-visualização não retorna nenhuma linha. O atributo restrito não possui nenhum valor correspondente ou o período de validade do privilégio já terminou.
  • A restrição é ignorada. O privilégio foi criado, mas nunca ativado, ou a propriedade "Aplicar Privilégios" da visualização não está definida.
  • A alteração não surte efeito. A tarefa não foi implantada ou a sessão do usuário foi iniciada antes da implantação e precisa ser reconectada.
  • De qualquer forma, tudo está visível. O usuário possui a permissão _SYS_BI_CP_ALL, que concede acesso irrestrito a todas as visualizações de informações e, portanto, não deve ser utilizado em funções de produção.

Conceda privilégios analíticos por meio de funções, em vez de diretamente aos usuários, para que a mesma restrição possa ser revisada, transportada e revogada em um único local. A modelagem do contexto para as visualizações protegidas é abordada em [referência]. SAP Modelagem HANA e SAP HANA guias.

Perguntas Frequentes

SAP O HANA utiliza privilégios de sistema para tarefas administrativas, privilégios de objeto para tabelas e visualizações, privilégios de pacote para conteúdo do repositório, privilégios de aplicativo para aplicativos XS e privilégios analíticos para acesso em nível de linha dentro de visualizações de informações.

Sim. A seção Modelos de Referência aceita várias visualizações de informações, e a mesma restrição de atributo se aplica a cada uma delas, desde que o atributo restrito exista em todas as visualizações listadas.

_SYS_BI_CP_ALL é um privilégio analítico gerado que concede acesso irrestrito a todas as visualizações de informações. É conveniente para um modelador em um ambiente de teste (sandbox), porém compromete a segurança em nível de linha e não deve ser usado em ambientes de produção.

O aprendizado de máquina em logs de acesso cria perfis de comportamento de consultas normais e sinaliza contas que repentinamente leem empresas ou regiões incomuns. Essas ferramentas classificam concessões de risco para revisão, mas ainda cabe ao administrador de segurança decidir quais privilégios devem ser alterados.

O GitHub Copilot gera condições de filtro e o SQL correspondente a partir de um breve comentário, o que simplifica o trabalho com restrições complexas. Cada condição gerada deve ser testada com dados reais, pois um operador incorreto amplia o acesso silenciosamente.

SAP O HANA Cloud suporta apenas privilégios analíticos SQL. O privilégio é um artefato de tempo de design dentro de um contêiner HDI, concedido por meio de uma função, e o editor XML clássico do SAP O HANA Studio não está mais disponível.

Não. A restrição é avaliada para visualizações de informações cuja propriedade "Aplicar Privilégios" está definida. Uma consulta à tabela base é controlada apenas por privilégios de objeto; portanto, tabelas sensíveis devem ser expostas por meio de visualizações.

Uma função agrupa privilégios e é o contêiner recomendado para transporte e revisão. Um privilégio analítico é um dos objetos dentro desse pacote, e concedê-lo diretamente a um usuário torna a mesma restrição mais difícil de auditar posteriormente.

Resuma esta postagem com: