Semplifica il processo di autenticazione PostGIS da QGIS


9

In QGIS ho un progetto con dati provenienti da vari (~ 15) database PostGIS, senza credenziali di accesso (utente di autenticazione / pwd) memorizzate per ciascuna delle connessioni come mostrato di seguito.

inserisci qui la descrizione dell'immagine

Ora quando un altro utente apre il progetto, deve inserire le credenziali per OGNI database utilizzato:

inserisci qui la descrizione dell'immagine

Temo fortemente che nessuno dei miei utenti accetti legittimamente di inserire le proprie credenziali 15 volte (ma in un ambiente aziendale con potenzialmente centinaia di utenti, l'accettazione è la chiave del successo).

Quindi due domande sorgono per me:

  • c'è un modo per suggerire il nome utente in base alla variabile di progetto globale user_account_namee
  • c'è un modo per dire a QGIS di usare le credenziali immesse per la prima connessione db anche per qualsiasi altra connessione?

Non posso stimare se sarebbe molto utile modificare il dialogo "Inserisci credenziali" come proposto di seguito, ma è possibile?

inserisci qui la descrizione dell'immagine


quindi solo il "regno" sta cambiando mentre tutte le altre variabili rimangono invariate?
Ridi il

sì, nel reale sta cambiando solo il 'dbname'. è tutto sullo stesso server.
Jochen Schwarze,

5
PostGIS è l'estensione spaziale. Hai oltre una dozzina di database PostgreSQL . Mentre potresti essere in grado di mettere insieme un kludge, dovresti davvero avere un database di grandi dimensioni. La connessione a più di tre è solo una cattiva progettazione dell'applicazione / database.
Vince il

3
Molto generoso ... Mi dispiace che il mio inglese non sia abbastanza buono da chiarire che la mia domanda non riguarda la progettazione di applicazioni / database. E comunque, ho sempre pensato che PostGIS implica PostgreSQL, e che in QGIS stabiliamo connessioni PostGIS (cp. Screenshot sopra). Mentre alcuni postgres affermano che è buona prassi distribuire contenuti diversi in database diversi ove possibile, per favore fatemi partecipare da dove sapete che collegarsi a più di tre database è una progettazione di applicazioni scadente? Per favore, si prega di fornire la relativa documentazione bibliografica! E perché tre ?!
Jochen Schwarze,

1
Non posso indirizzarti alla letteratura, ma una buona soluzione potrebbe essere quella di utilizzare schemi separati all'interno dello stesso database.
bugmenot123

Risposte:


7

QGIS ha un sistema di autenticazione integrato . Parlando semplicemente, hai un database protetto con tutte le tue credenziali, memorizzato in un qgis-auth.dbfile, che puoi inviare a qualcun altro, che conosce una password principale:

 Cartella .qgis

Quando crei una nuova connessione PostGIS, invece di digitare il tuo login / password puoi selezionarla da qgis-auth.db(ogni coppia login / password ha un nome intuitivo).

Impostare la connessione PostGIS in QGIS con il sistema di autenticazione

Ad esempio, ho un progetto QGIS che contiene molti livelli. Ogni livello è una connessione a un database PostGIS remoto. Ogni database ha il suo utente. Quando apro questo progetto, devo stampare una password principale una volta e tutti i livelli (connessioni db) iniziano a funzionare.

Posso inviare questo progetto al mio collega, fornendo il mio qgis-auth.dbfile. In precedenza, posso eliminare alcune credenziali che non voglio condividere da questo file.

Dopo che il mio collega ha messo qgis-auth.dbnella sua .qgiscartella (potrebbe fare un backup del proprio file prima), apre il progetto, inserisce la password principale e tutto funziona.

Immettere una password principale una volta per sessione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.