Query para verificar os Acessos de um Usuário do Protheus | Ti Responde 0198

No vídeo de hoje, vamos demonstrar em como buscar informações de Acessos dos usuários através de uma query.

A dúvida de hoje, nos perguntaram, se seria possível buscar todos os usuários que tem algum acesso específico liberado.

 

Pensando nisso, montamos um exemplo, onde vamos mostrar em como fazer uma query relacionando as tabelas SYS_USR_ACCESS e SYS_USR. E outro exemplo para buscar a pasta configurada nos usuários na tabela SYS_USR_PRINTER.

 

Segue abaixo o vídeo exemplificando:

 

E abaixo as queries desenvolvida:

SELECT 
	USR.USR_ID,
	USR.USR_CODIGO,
	ACE.USR_CODACESSO,
	CASE 
		WHEN ACE.USR_CODACESSO = '112' THEN 'Gerar rel. no servidor'
		WHEN ACE.USR_CODACESSO = '121' THEN 'Usa impressora no server'
		ELSE ''
	END AS DESCRICAO
FROM 
	SYS_USR_ACCESS ACE
	INNER JOIN SYS_USR USR ON (
		USR.USR_ID = ACE.USR_ID
		AND USR.D_E_L_E_T_ = ' '
	)
WHERE
	ACE.USR_CODACESSO IN ('112', '121')
	AND ACE.USR_ACESSO = 'T'
	AND ACE.D_E_L_E_T_ = ' '
ORDER BY
	USR_ID

E:

SELECT 
	PRT.USR_ID,
	USR.USR_CODIGO,
	PRT.USR_ENVIMP,
	PRT.USR_DIRIMP
FROM 
	SYS_USR_PRINTER PRT
	INNER JOIN SYS_USR USR ON (
		USR.USR_ID = PRT.USR_ID
		AND USR.D_E_L_E_T_ = ' '
	)
WHERE
	PRT.D_E_L_E_T_ = ' '
	AND UPPER(PRT.USR_DIRIMP) != 'C:\SPOOL\'

Bom pessoal, por hoje é só.

 

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

2 Responses

  1. Daniel Alves disse:

    Bom dia !

    Daniel. Obrigado por compartilhar.

    Aproveitando. Sabe se pode gerar algum problema se realizar update de permissões nas tabelas SYS_ diretamente via SQL ?

    As rotinas padrões do configurador é muito demorada.

    Grato

Deixe uma resposta

Terminal de Informação