Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Dúvidas com Controle de Acesso

Pessoal, boa tarde.

Estou com dificuldades de implementar um controle de acesso utilizando Section Access.

Tenho um QVW que será acessado por vários gerentes de bases e gerentes regionais.

O objetivo é permitir que cada gerente visualize dados específicos de sua base ou de sua regional (várias bases). Não há restrição de acesso às pastas do QVW, todas estarão disponíveis. É só os dados que precisam ser ocultos, para um gerente não ver os dados da base/regional de outro no mesmo QVW.

Meu script da seção de acesso é:

Section Access; // Start of section access part

STAR IS *;

Load * Inline [
USERID,ACCESS,COD_REGIONAL,COD_BASE
IGNEZ,admin,*,* // acessa dados de todas as regionais e bases
JOAO,user,1,* // acessa dados de todas as bases da regional 1
MARIA,user,2,* // acessa dados de todas as bases da regional 2
JOSE,user,*,21 // acessa dados apenas da base 21
];

Section Application; // End of section access part

Regionais:
SQL
SELECT COD_REGIONAL,NM_REGIONAL
  FROM CRP_REGIONAL;

Base:
SQL
SELECT COD_REGIONAL,COD_BASE,,NM_BASE
FROM CRP_BASE;

No QVW, montei um objeto tabela com 4 colunas das 2 tabelas acima, para visualizar os dados. Recarreguei, salvei, fechei e reabri o documento como usuário IGNEZ, que deve visualizar todos os registros das tabelas. Porém, apenas as informações da base 21 (o único código de base declarado) está visivel.

Alguém pode me ajudar?

Obrigada,

Ignez

Labels (2)
19 Replies
Not applicable
Author

Caros, bom dia.

Consegui fazer a rotina funcionar do jeito que eu queria, depois de um "truque" que apliquei ao script. Eu criei uma 5ª coluna na carga de usuários, apenas para incluir uma virgula depois do número da base 21. Com isso, o acesso ficou perfeito.

A usuária IGNEZ visualiza todas as regionais e suas respectivas bases.

Os usuários JOAO, MARIA e ANTONIO visualizam todas as bases das regionais 1,2 e 3, respectivamente.

O usuário JOSE visualiza apenas a base 21.

Agradeço ao Raphael e ao lssosorio pela ajuda nesta questão!

Segue o código final:

 

STAR IS *;

Section Access; // Start of section access part

Load * Inline [

USERID,ACCESS,CD_REGIONAL,COD_BASE,CAMPO_VAZIO

IGNEZ,ADMIN,,,

JOAO,USER,1,,

MARIA,USER,2,,

JOSE,USER,2,21,

];

Section Application; // End of section access part

Regionais:

LOAD COD_BASE,

NM_BASE,

UF,

CIDADE,

CD_REGIONAL,

NM_REGIONAL

FROM

C:\BASES.xlsx

(ooxml, embedded labels, table is Plan1);

Not applicable
Author

Sem problemas, acredito que esse campo vazio não seja necessário.

Marca a resposta correta para ajudar outras pessoas tbm

=D

Not applicable
Author

Fiz um teste invertendo as colunas Regional e Base, e aí funcionou corretamente. Depois, voltei ao original, sem a coluna vazia, e também funcionou!

Realmente, não sei explicar. Mas apenas as 4 colunas é o correto.

Not applicable
Author

O problema ocorreu pq você colocou o simbolo de ' * ' para representar "todos" os dados. Mas ele não é necessário, pois deixando o campo em branco ele ja entende que é para mostrar tudo.

Not applicable
Author

Como fazer o usuário ADMIN ver todas as pastas?

Not applicable
Author

Como assim???? Section Access é para limitar acesso a informação, como você está fzd o controle de acesso as pastas.

nicolett_yuri

Paulo, te oriento abrir outra discussão para isso

Not applicable
Author

Pela condicional da pasta.

Estou usando o QVW que o Aderlan disponibilizou.

Para o ADMIN visualizar todas as pastas, já que os USER visualizarão as pastas que eles tem acesso.

Estou usando este script:

Section Access;

LOAD * INLINE [

  ACCESS,USERID,PASSWORD,ABAS

  ADMIN,ADMIN,admpre,

    USER,000005,Rona5per,1

  USER,000161,Fla1440b,2

  USER,000162,marco162,3

];

Section Application;

Abas:

LOAD * INLINE [

    ABAS, Descrição

    , Financeiro

    , Comercial

    , Logística   

    1, Financeiro

    2, Comercial

    3, Logística

];

E aparentemente funcionou, após colocar na condicional da pasta ABAS=1 or ABAS=''.

Not applicable
Author

O ACESS é a DOC e o USER são as Names?

Posso limitar o acesso ao dados por usuário que tenha uma senha senha específica, sem necessitar de um novo login dentro da aplicação? (DOC?)