Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Dificuldades com Controle de Acessos

Pessoal, bom dia.

Preciso de ajuda com a seção de acesso do QV. Em um mesmo QVW, eu preciso filtrar tanto objetos quanto dados, dependendo do usuário Windows que se logar no QV Server, via web.

Meu login de rede é o administrador e pode acessar tudo.

João pode acessar o botão de compras e ver os dados da filial 1

José pode acessar o botão de vendas e ver os dados da filial 2.

Inclui o código:

Section Access;

Controle_Acesso:
Load * Inline [
NTNAME,ACCESS,USUARIO
ignez.mello,ADMIN,ignezmello
joao.silva,USER,joaosilva
jose.souza,USER,josesouza

];

Section Application;

Perfil_Acesso:
LOAD * Inline [
USUARIO,BT_COMPRAS,BT_VENDAS,CD_FILIAL
ignezmello,S,S,1

joaosilva,S,N,1
josesouza,N,S,2
];

Também ativei o parâmetro \ Configurações \ Propriedades do Documento \ Abrindo \ Redução inicial de dados baseada na Seção de Acesso.

A tabela de filiais, com a coluna CD_FILIAL, fica na pasta Corporativo, e não na pasta MAIN.

Quando acesso o QVW via web com o parâmetro Exclusão Total desabilitado, o filtro do controle de acesso não é aplicado ao documento, e qualquer login consegue visualizar todos os dados.

Quando acesso o QVW via web com o parâmetro Exclusão Total habilitado, recebo a mensagem "Failed to open document, You don't have access to this document."

Na primeira tentativa, coloquei todas as colunas na Section Access, mas não deu certo.

Depois, consultando mensagens aqui vi um exemplo que separava as colunas em duas tabelas. Tentei usando a coluna NTNAME e não deu certo. Por isso, criei a coluna USUARIO com o mesmo nome do NTName, com e sem o ponto. Também não deu certo.

Mais um detalhe importante: este documento já existe e está em produção. Estou trabalhando numa cópia, onde inclui a seção de acesso.

Quando comecei a estudar a Section Access, criei um documento do zero e funcionou! 😞

Preciso fazer este controle de acesso funcionar. Ele é crucial para o trabalho que estou desenvolvendo agora.

Por favor, alguém pode me ajudar?

Obrigada,

Ignez

1 Solution

Accepted Solutions
cesaraccardi
Specialist
Specialist

Ola Ignez,

Eu tenho a impressao de que o problema esta na sua tabela de acesso, experimente colocar os nomes dos usuarios (NTNAME) em caixa alta.

Abracos,

Cesar

View solution in original post

6 Replies
Not applicable
Author

Bom dia,

Para que o controle de acesso funcione de acordo com o que você explicou, você deve inserir o código da filial no trecho do Section Access:

exemplo:

Section Access;

Controle_Acesso:

Load * Inline [

NTNAME,ACCESS,USUARIO,BT_COMPRAS,BT_VENDAS,CD_FILIAL

ignez.mello,ADMIN,ignezmello, S, S, 1

joao.silva,USER,joaosilva, S, N, 1

jose.souza,USER,josesouza, N, S, 2

];

Marque a opção de "Redução inicial de dados baseada na Seção de Acesso" e o filtro dos dados a serem carregados inicialmente será feito com sucesso.

Agora com relação a visualização dos objetos nas pastas, você deve realizar o controle utilizando o parâmetro "MOSTRAR" em Propriedades / aba 'Layout'.

Deve inserir uma condição para que o objeto seja demonstrado por exemplo: USUARIO = 'EDUARDO'

Abraços

cesaraccardi
Specialist
Specialist

Ola Ignez,

Eu tenho a impressao de que o problema esta na sua tabela de acesso, experimente colocar os nomes dos usuarios (NTNAME) em caixa alta.

Abracos,

Cesar

cesaraccardi
Specialist
Specialist

Se voce quiser dar uma olhada tem um exemplo que eu fiz ha um tempo atras:

http://community.qlik.com/message/199100#199100

Att,

Cear

Not applicable
Author

Cesar, bom dia.

Eu não acredito que estou quebrando a cabeça desde ontem porque os nomes de usuários não estão em caixa alta!!!

Eu pensei que a caixa alta fosse apenas para o nome das colunas.

Fiz dois testes:

1) Alterei o conteúdo da coluna USUARIO para caixa alta nas duas tabelas, mantendo a coluna NTNAME em minúscula, e funcionou!

2) Alterei o conteúdo da coluna NTNAME para caixa alta e retirei a coluna USUARIO da Section Access. Na declaração da tabela Perfil_Acesso, troquei o nome da coluna USUARIO para NTNAME. E também funcionou.

Vou deixar a segunda opção no meu código final, que ficou assim:

Section Access; // Start of section access part

Controle_Acesso:
Load * Inline [

NTNAME, ACCESS
IGNEZ.MELLO, ADMIN
JOAO.SILVA, USER

JOSE.SOUZA, USER

];

Section Application; // End of section access part

Perfil_Acesso:
LOAD * Inline [
NTNAME, BT_COMPRAS, BT_VENDAS, BT_GMR, BT_TRANSPORTE, CD_FILIAL
IGNEZ.MELLO, S, S, S, S, 1
JOAO.SILVA, S, S, S, S, 1
JOSE.SOUZA, S, N, S, S, 2
];

Acrescentei o código =ONLY(BT_xxx) = 'S' na condição de exibição dos botões, e ficou tudo certinho!

De agora em diante, vou colocar tudo em maíscula nessa seção.

Muito obrigada!

Ignez

Not applicable
Author

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

Not applicable
Author