En una computadora compartida, tengo un proyecto QGIS que se vincula a una base de datos PostGIS que contiene mis datos. Si un usuario desea acceder a las capas de la base de datos, debe ingresar las credenciales de la base de datos, por lo que está bien.
Sin embargo, previamente inicié sesión e importé capas de mi base de datos en QGIS, y las manipulé en QGIS (opciones de estilo basadas en metadatos, etc.) ... Cualquiera que abra mi proyecto QGIS puede ver estas capas en QGIS, y Por lo tanto, puedo ver los datos que deseo proteger en mi base de datos.
¿Hay alguna manera de proteger con contraseña mi proyecto QGIS?
Respuestas:
Su mejor opción es no guardar las credenciales de db en su proyecto (QGIS incluso le advierte sobre el peligro potencial de guardar sus credenciales cuando agrega el db por primera vez).
Cuando abra el proyecto, se le solicitarán inmediatamente sus credenciales antes de que se representen las capas de la base de datos.
Alternativamente, puedes:
Para hacer un seguimiento del peligro de guardar sus credenciales de db en QGIS, consulte esta pregunta . Es trivial para cualquiera con la más mínima curiosidad ver sus credenciales en texto sin formato.
fuente
username=foo password=bar
. El problema hasta donde puedo ver es que mi base de datos de prueba solo usó el nombre de usuario / contraseña de administrador, es decir, postgres / postgres. Después de que decidí usar la pila PostGIS / QGIS, cambié la contraseña. Si bien no ingresar el nombre de usuario / contraseña correctos en QGIS bloqueó el acceso a las capas que había importado con la contraseña actualizada, por alguna razón las capas más antiguas (importadas con la configuración postgres / postgres) estaban bien ya que las credenciales se guardaron en la base de datos.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.
fuente