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.
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
Bom dia Daniel, tudo joia?
Até onde sei, as tabelas internas SYS_* tem checksum, então qualquer operação fora do Protheus, pode corromper informações da tabela e impedir o uso do sistema.
O que você pode tentar fazer é, que as alterações sejam feitas via ExecAuto, segue um exemplo – https://terminaldeinformacao.com/2025/08/26/como-fazer-para-que-a-senha-de-um-usuario-nunca-expire-no-protheus-ti-responde-0180/
Tenha uma ótima e abençoada quarta feira.
Um forte abraço.