Había una pregunta similar que respondí aquí . No fui demasiado lejos en la creación de una idea sobre cómo crear el formulario de inicio de sesión, aunque existe mucha lógica.
Si puede confiar en que sus usuarios no intentarán ingresar a su código de Python (o compilarlo en un .exe para hacerlo aún más difícil), podría crear un script que abrirá el proyecto con las capas cargadas en él, o un proyecto vacío si no pueden proporcionar las credenciales correctas.
Se habló de verificar la información en un servidor para obtener un método más seguro, que podría implementar en su instancia de Postgres / PostGIS. Puede encontrar una solución provisional más simple para codificar en su nombre de usuario y una contraseña cifrada en su código de Python que se alimenta a una API para su verificación. Deje que su servidor haga la comparación en lugar de su código de escritorio. Almacenar su contraseña hash localmente no es la forma más segura de hacer las cosas, pero dependiendo de su algoritmo hash, podría ser bastante difícil descifrarlo .
En última instancia, es probable que sea más seguro proporcionar sus credenciales cada vez, a menos que sepa que los otros usuarios no son lo suficientemente expertos en informática como para descubrir cualquiera de los métodos automatizados que proporcionaría.