O PIS roda sobre o sistema operacional Windows. Qualquer execução de programa ou serviço feito pelo Windows utiliza um usuário. E este usuário é que terá, do sistema operacional, privilégios de acesso a conexões e pastas do ambiente. Não confunda este usuário mencionado aqui com o usuário do PIS.


Ref.00049



Quando acessamos o PIS Client estamos conectados ao console do Windows, ou através do monitor direto da máquina, ou através de um Remote Desktop ou até mesmo através de uma conexão via Citrix. Não importa. Um usuário Windows com determinados privilégios está sendo usado para acessar o sistema operacional. 


Ref.00050


Durante o desenho dos processos de integração ou ETL este usuário está acessando outras bases de dados, diretórios, executando processos locais (Preview) e tudo funciona perfeitamente porque aquele usuário Windows que ele está usando para acessar a máquina possui privilégios para fazer todas estas ações. Principalmente acesso ao diretório de propriedades do PIS, fundamental para seu funcionamento.



Ref.00051


Porém temos os dois serviços Threads e Schedules que também precisam de um usuário do sistema operacional para executar os processos conforme as filas de Threads e de Agendamentos. Bem como este mesmo usuário é usado para executar o Server Command.


Este usuário vai executar os mesmos processos de ETL e Integração desenhados pelo usuário que acessou o console e usou o Client para construí-los.


Se estes usuários forem diferentes e possuírem privilégios de segurança distintos pode ocorrer de um processo que, durante sua fase de desenho, funcionar corretamente, mas quando executados pelos serviços não funcionarem. Isso porque os usuários são diferentes e sem os mesmos privilégios.



Se vocês observarem na máquina de vocês verão que os serviços estão instalados com um usuário chamado Local System.



Já no servidor Windows, se eu verificar o usuário que está conectado, vejo outro diferente.


Logo, precisamos fazer com que o usuário que gerencie o serviço seja tal que tenha privilégios de acessos aos recursos externos exigidos pelos processos de ETL e Integração. 


Uma forma de garantir que isso irá ocorrer é usar o mesmo usuário que está sendo usado para acessar a máquina no gerenciamento dos serviços.


Uma forma de garantir que isso irá ocorrer é usar o mesmo usuário que está sendo usado para acessar a máquina no gerenciamento dos serviços.


Numa instalação real estes detalhes devem ser explicitados ao cliente para que seja providenciado um único usuário do sistema operacional que tenha os privilégios necessários e usar este mesmo usuário para gerenciar tanto o acesso ao console (Se isso for necessário) como aos serviços. Claro que esta necessidade somente será válida para instalações On-Premises.