Section Access (Seção de Acesso)

O QLIKVIEW possui um sistema de segurança o qual o desenvolvedor libera os acessos aos dados contidos em cada qvw. A configuração de segurança é feita no script de cada qvw criado.

Abaixo vocês podem ver a descrição de como utilizar Sessões de Acesso (Section Access) no QLIKVIEW.

A principio vou apresentar toda a descrição do Section Access e em um novo artigo iremos criar um script com Section Access.

Sessão de Acesso (Section Access)

O mecanismo de segurança do QlikView pode ser configurado de duas maneiras diferentes: ele pode ser criado no script do documento QlikView ou pode ser configurado com o QlikView Publisher. Caso o mecanismo de segurança seja criado no script do QlikView, observe as linhas a seguir.

Seções no Script

O controle de acesso é gerenciado por meio de uma ou várias tabelas de segurança carregadas da mesma forma que o QlikView normalmente carrega os dados. É possível, por essa razão, armazenar essas tabelas em uma base de dados normal. Os comandos de script que gerenciam as tabelas de segurança são fornecidos na seção de acesso, que é iniciada no script pelo comando section access.

Se uma seção de acesso estiver definida no script, a parte do script que carrega os dados “normais” deve ser colocada em uma seção diferente, iniciada pelo comando section application.

Níveis de Acesso na Seção de Acesso

O acesso a documentos QlikView pode ser autorizado para usuários ou grupos de usuários especificados. Na tabela de segurança, é possível atribuir níveis de acesso ADMIN ou USER aos usuários. Se nenhum nível de acesso for atribuído, o usuário não poderá abrir o documento QlikView.

Uma pessoa com acesso ADMIN pode alterar tudo no documento. Utilizando a página Segurança nas caixas de diálogo Propriedades do Documento e Propriedades da Pasta, uma pessoa com acesso ADMIN pode limitar as possibilidades dos usuários de modificar o documento. Uma pessoa com privilégios de USER não pode acessar as páginas de Segurança.

Campos do sistema de Seção de Acesso

Os níveis de acesso são atribuídos aos usuários em uma ou várias tabelas carregadas na seção de acesso. Essas tabelas contêm vários campos do sistema específicos do usuário, geralmente USERID e PASSWORD, e o campo que define o nível de acesso, ACCESS. Todos os campos do sistema de Seção de Acesso serão usados na autenticação ou autorização. O conjunto completo de campos do sistema de seção de acesso está descrito a seguir.

Nenhuma,  todas ou qualquer combinação de campos de segurança pode ser carregada na seção de acesso. Dessa forma, não é necessário usar USERID – a autorização pode ser feita usando outros campos, por exemplo, somente pelo número de série.

ACCESS Um campo que define o tipo de acesso que o usuário correspondente terá.
USERID Um campo que deve conter um ID de usuário aceito. O QlikView solicitará um ID de Usuário e o comparará com o valor desse campo. Esse ID de usuário não é o mesmo do Windows.
PASSWORD Um campo que deve conter uma senha aceita. O QlikView solicitará uma Senha e irá compará-la com o valor desse campo. Essa senha não é a mesma do Windows.
SERIAL Um campo que deve conter um número que corresponde ao número de série do QlikView.
Exemplo: 4900 2394 7113 7304
O QlikView verificará o número de série do usuário, comparando-o com o valor desse campo.
NTNAME Um campo que deve conter um caracter correspondente a um nome de usuário ou nome de grupo do Domínio do Windows NT.
O QlikView extrairá as informações de logon do sistema operacional e as comparará com o valor desse campo.
NTDOMAINSID Um campo que deve conter um caracter correspondente a uma SID de Domínio do Windows NT.
Exemplo: S-1-5-21-125976590-4672381061092489882
O QlikView extrairá as informações de logon do sistema operacional e as comparará com o valor desse campo.
NTSID Um campo que deve conter uma SID do Windows NT.
Exemplo: S-15-21-125976590-467238106-1092489882-1378
O QlikView extrairá as informações de logon do sistema operacional e as comparará com o valor desse campo.
OMIT Um campo que deve conter o campo que deve ser omitido para esse usuário específico. Os caracteres curinga podem ser usados e o campo pode ficar vazio. Uma forma fácil de fazer isto é usar um subcampo.

O QlikView comparará o número de série do QlikView com o campo SERIAL, o nome do usuário e grupos do Windows NT com NTNAME, a SID do Domínio do Windows NT com NTDOMAINSID e a SID do Windows NT com NTSID. Além disso, solicitará um ID de Usuário e Senha e os comparará com os campos USERID e PASSWORD.

Se a combinação encontrada de ID de usuário, senha e propriedades do ambiente também for encontrada na seção de acesso, o documento será aberto com o nível de acesso correspondente. Caso contrário, o QlikView negará ao usuário o acesso ao documento. Se a ID do Usuário e/ou a Senha não forem inseridas corretamente em três tentativas, o procedimento completo de logon deverá ser repetido.

Redução dinâmica de dados

O QlikView e o QlikView Server suportam um recurso pelo qual parte dos dados em um documento pode ser oculta do usuário, com base no login da seção de acesso.

Primeiramente, os campos (colunas) podem ser ocultos pelo uso do campo de sistema OMIT.

Em seguida, os registros (linhas) podem ser ocultos vinculando os dados da Seção de Acesso aos dados reais: A seleção de valores a serem mostrados/excluídos é controlada pela existência de um ou mais campos com nomes comuns em seção de acesso e seção de aplicativo. Após o login do usuário, o QlikView tentará copiar as seleções dos campos da seção de acesso em quaisquer campos da seção de aplicativo exatamente com os mesmos nomes de campo (os nomes de campo devem ser escritos em MAIÚSCULAS). Qualquer campo que contenha letras minúsculas na base de dados deve ser convertido para letras maiúsculas com a função upper antes de ser lido pelos comandos load ou select. Depois de feitas as seleções, o QlikView ocultará permanentemente do usuário todos os dados que foram excluídos por essas seleções.

Para que esse procedimento possa ser executado, a opção Redução Inicial de Dados baseada na Seção de Acesso na página Abrindo da caixa de diálogo Propriedades do Documento deve ser selecionada. Se esse recurso for usado nos documentos que serão distribuídos por outros meios, e não pelo QlikView Server, a opção Carga Binária Proibida da mesma página do diálogo Propriedades do Documento deverá ser selecionada para manter a proteção dos dados.

load * inline  
  [IDUsuário,DEPT,Access
  João,FINANÇAS,Admin
  ANN,IS,Admin
  Pedro,VENDAS,User
  Benedito,TÉCN,User ] ;
section application;  
star is * ;  
load * inline  
  [DEPT,CentroCusto
  FINANÇAS,*
  IS,5020
  VENDAS,5030
  TÉCN,5040 ] ;

O campo DEPT agora existe com o mesmo nome em MAIÚSCULAS nas seções de acesso e de aplicativo. Todos os valores de campo também estão em MAIÚSCULAS. Normalmente, os dois campos seriam totalmente diferentes e separados, mas se a opção Redução Inicial de Dados baseada na Seção de Acesso tiver sido marcada, o resultado será este:

  • João pode ver dados de todos os centros de custo
  • Ana pode ver somente dados do centro de custo 5020
  • Pedro pode ver somente dados do centro de custo 5030
  • Benedito pode ver somente dados do centro de custo 5040
fonte: Ajuda Qlikview

7 thoughts on “Section Access (Seção de Acesso)

  • 05/07/2011 at 10:02
    Permalink

    Primeiramente parabéns pelo Blog e por todos os artigos postados. Me ajudaram e ajudam muito!

    Apenas uma observação referente a redução de dados. Quando você fala que “João pode ver dados de todos os centros de custo” esse todos não significa todos os centros de custos da sua núvem e sim todos os centros de custos citados dentro do Section Access.

    Exemplo:
    João poderá ver os CC: 5020, 5030 e 5040.
    Caso exista um CC 5050, 5060, etc em sua nuvem, este usuário não conseguirá visualizar, pois estes não foram citados em sua redução de dados.

    O mais aconselhável é fazer um LOAD DISTINCT de todos os CC e concatenar com a sua tabela de redução de dados.

    Reply
    • 05/07/2011 at 10:28
      Permalink

      Muito obrigado Yuri.

      Me desculpa mas vou ter que discordar sobre o que você disse quanto ao CC. Se eu tiver o CC 5050 o João poderá sim visualizar os dados deste CC.

      Eu montei um exemplo e logo colocarei um Post de como criar o Section Access e os acessos.

      Mas segue uma imagem mostrando como criei o Section Access, Relacionamento das tabelas e como o departamento TI tem acesso a todos os centros de custo mesmo o 5050 que não esta na lista mencionada na tabela de Departamente e CC.

      Mas este é um exemplo bem simples. E como você pode ver foi retirado do Ajuda do Qlikview, mas ele funciona sim.

      Clique aqui para abrir a imagem.

      Guilherme Oliveira.

      Reply
  • 21/01/2014 at 16:20
    Permalink

    Ótimo Blog Guilherme, tenho acompanhado todos os posts.

    Gostaria de colaborar com o assunto.

    Não consegui reproduzir a funcionalidade de redução baseado na sua imagem enviada ao Yuri.

    O script que utilizei e que funcionou foi o seguinte:

    SECTION Access;
    load * inline [
    USERID,ACCESS,DEPT,CENTROCUSTO
    ADMINISTRADOR,ADMIN,TI,
    USER1,USER,FINANÇAS,1020
    USER2,USER,IS,5020
    USER3,USER,VENDAS, 5030
    USER4,USER,TÉCN,5040];

    SECTION Application;
    [Centros de Custo]:
    load * inline
    [CENTROCUSTO
    1020
    5020
    5030
    5040,
    5050];

    Obs1: Como o amigo Yuri havia comentado assim ocorre:
    – Com asterisco reduz apenas aos que foram citados na redução, como pode ser lido no livro “QlikView 11 for Developers”:

    “When we use an asterisk, it means that the user gets access to all values listed in the reduction field.”.

    – Sem asterisco não reduz nada, consequentemente mostra todos.

    Obs2: Como você colocou acima “os nomes de campo devem ser escritos em MAIÚSCULAS)” procede.Apenas com o nome do campo em maiúsculo, no caso CENTROCUSTO é que funcionou a redução.

    Obs3: Seu post é de 2011 pelo que ví, portanto as coisas podem ter mudado.

    Abraço

    Reply
  • 04/06/2014 at 12:53
    Permalink

    Boa tarde,

    como ficaria o script caso eu queira utilizar meus usuários AD para acesso ao QlikView????

    Reply
  • 27/06/2014 at 08:16
    Permalink

    Michael Freitas says:

    poderia me ajudar,preciso dar acesso a alguns usuarios, estes não possuem licença do qlik viwer, que comandos poderei usar????

    caso outro usuario possa me ajudar, agradeço muito.

    Reply
    • 11/09/2014 at 16:58
      Permalink

      Boa tarde Luciana,

      Para que um usuário tenha acesso a um determinado painel é necessário ter uma licença disponível.
      Não é através de comando mas sim na aquisição de uma nova licença ou a liberação de alguma que estiver em uso.
      Espero ter ajudado

      Reply
  • 12/04/2017 at 00:36
    Permalink

    Vou iniciar a utilização do section access na minha empresa, estou com alguma dúvidas:
    Hoje, todo controle é feito pelo usuário do Windows, por conta disso, a utilização dos aplicativo acabam acatando algumas regras da politica de segurança, por exemplo, 3 erros de senha seguidos, bloqueia o acesso do usuário (Essa regra não se aplicaria aos users das aplicações Qlikview), por isso, vou implantar o controle via section access, gostaria de saber se dos campos que temos que carregar para fazer o controle, quais são obrigatórios? Na empresa alguns usuários utilizam a mesma licença, utilizando o section access, isso teria algum impacto?

    Reply

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *