Havia uma pergunta semelhante que respondi aqui . Eu não fui muito longe na criação de uma idéia de como criar o formulário de login, embora muita lógica esteja lá.
Se você pode confiar que seus usuários não tentarão acessar seu código python (ou compilar um arquivo .exe para torná-lo ainda mais difícil), você poderá criar um script que abrirá o projeto com as camadas carregadas ou um projeto vazio se eles não puderem fornecer as credenciais corretas.
Falou-se em verificar as informações em um servidor para um método mais seguro, que você pode implementar na sua instância do Postgres / PostGIS. Você pode encontrar como uma parada mais simples para codificar em seu nome de usuário e uma senha com hash em seu código python que alimenta uma API para verificação. Portanto, deixe seu servidor fazer a comparação em vez do código da área de trabalho. Armazenar sua senha com hash localmente não é a maneira mais segura de fazer as coisas, mas, dependendo do seu algoritmo de hash, pode ser muito difícil decifrá-lo .
Por fim, é provavelmente mais seguro fornecer suas credenciais todas as vezes, a menos que você saiba que os outros usuários não têm conhecimento de computador o suficiente para descobrir qualquer um dos métodos automatizados que você forneceria.