Simplifique el proceso de autenticación PostGIS de QGIS

9

En QGIS tengo un proyecto con datos de varias (~ 15) bases de datos PostGIS, sin credenciales de inicio de sesión (usuario de autenticación / pwd) almacenadas para cada una de las conexiones como se muestra a continuación.

ingrese la descripción de la imagen aquí

Ahora, cuando otro usuario abre el proyecto, él (o ella) tiene que ingresar las credenciales para CADA base de datos utilizada:

ingrese la descripción de la imagen aquí

Temo firmemente que ninguno de mis usuarios acepte legítimamente ingresar sus credenciales 15 veces (pero en un entorno empresarial con potencialmente cientos de usuarios, la aceptación es clave para el éxito).

Entonces surgen dos preguntas para mí:

  • ¿hay alguna manera de sugerir el nombre de usuario de acuerdo con la variable global del proyecto user_account_namey
  • ¿hay alguna manera de decirle a QGIS que use las credenciales ingresadas para la primera conexión db para cualquier otra conexión también?

No puedo estimar si sería un gran problema modificar el diálogo 'Ingresar credenciales' como se propone a continuación, pero ¿es esto posible?

ingrese la descripción de la imagen aquí

Jochen Schwarze
fuente
entonces, ¿solo el "Reino" está cambiando mientras todas las demás variables permanecen igual?
LaughU
sí, dentro de lo real solo cambia el 'dbname'. Todo está en el mismo servidor.
Jochen Schwarze
55
PostGIS es la extensión espacial. Tiene más de una docena de bases de datos PostgreSQL . Si bien es posible que pueda armar un error, realmente debería tener una gran base de datos. Conectarse a más de tres es simplemente un mal diseño de la aplicación / base de datos.
Vince
3
Muy heplful ... Lo siento, mi inglés no es lo suficientemente bueno como para dejar en claro que mi pregunta no es sobre el diseño de aplicaciones / bases de datos. Y, por cierto, siempre pensé que PostGIS implica PostgreSQL, y que en QGIS establecemos conexiones de PostGIS (captura de pantalla cp. Arriba). Si bien algunas personas de postgres dicen que es una buena práctica distribuir diferentes contenidos en diferentes bases de datos cuando sea posible, permítanme participar desde donde saben que conectarse a más de tres bases de datos es un diseño deficiente de la aplicación. ¡Por favor, proporcione la referencia bibliográfica relacionada! ¿Y por qué tres?
Jochen Schwarze
1
No puedo señalarle literatura, pero una buena solución podría ser utilizar esquemas separados dentro de la misma base de datos.
bugmenot123

Respuestas:

7

QGIS tiene un sistema de autenticación incorporado . Simplemente hablando, tiene una base de datos protegida con todas sus credenciales, almacenada en un qgis-auth.dbarchivo, que puede enviar a otra persona, que conoce una contraseña maestra:

 Carpeta .qgis

Cuando crea una nueva conexión PostGIS, en lugar de escribir su nombre de usuario / contraseña, puede seleccionarla qgis-auth.db(cada par de nombre de usuario / contraseña tiene un nombre fácil de usar).

Configure la conexión PostGIS en QGIS con el sistema de autenticación

Como ejemplo, tengo un proyecto QGIS que contiene muchas capas. Cada capa es una conexión a una base de datos remota de PostGIS. Cada base de datos tiene su propio usuario. Cuando abro este proyecto, tengo que imprimir una contraseña maestra una vez, y todas las capas (conexiones db) comienzan a funcionar.

Puedo enviar este proyecto a mi colega, proporcionando mi qgis-auth.dbarchivo. De antemano, puedo eliminar algunas credenciales que no quiero compartir de este archivo.

Después de que mi colega lo puso qgis-auth.dben su .qgiscarpeta (puede hacer una copia de seguridad de su propio archivo antes), abre el proyecto, ingresa la contraseña maestra y todo funciona.

Ingresa una contraseña maestra una vez por sesión.

Yaroslav
fuente