Simplifique o processo de autenticação PostGIS a partir do QGIS

9

No QGIS, tenho um projeto com dados de vários (~ 15) bancos de dados PostGIS, sem credenciais de login (usuário de autenticação / senha) armazenadas para cada uma das conexões, como mostrado abaixo.

insira a descrição da imagem aqui

Agora, quando outro usuário abre o projeto, ele (ou ela) precisa inserir credenciais para CADA banco de dados usado:

insira a descrição da imagem aqui

Receio fortemente que legitimamente nenhum dos meus usuários aceite digitar suas credenciais 15 vezes (mas em um ambiente corporativo com potencialmente 100s de usuários, a aceitação é a chave do sucesso).

Então, duas perguntas surgem para mim:

  • existe uma maneira de sugerir o nome de usuário de acordo com a variável global do projeto user_account_namee
  • existe uma maneira de dizer ao QGIS para usar as credenciais inseridas para a primeira conexão db para qualquer outra conexão também?

Não posso estimar se seria muito modificar o diálogo "Inserir credenciais", conforme proposto abaixo, mas isso é possível?

insira a descrição da imagem aqui

Jochen Schwarze
fonte
então apenas o "Reino" está mudando enquanto todas as outras variáveis ​​permanecem as mesmas?
LaughU
sim, dentro do real apenas o 'dbname' está mudando. está tudo no mesmo servidor.
Jochen Schwarze
5
PostGIS é a extensão espacial. Você tem mais de uma dúzia de bancos de dados PostgreSQL . Embora você possa reunir um kludge, você realmente deve ter um banco de dados grande. Conectar-se a mais de três é apenas um projeto de aplicativo / banco de dados ruim.
Vince
3
Muito atencioso ... Desculpe, meu inglês não é bom o suficiente para deixar claro que minha pergunta não é sobre design de aplicativos / banco de dados. A propósito, eu sempre pensei que o PostGIS implica o PostgreSQL, e que no QGIS estabelecemos conexões PostGIS (cp. Captura de tela acima). Embora algumas pessoas do postgres digam que é uma boa prática distribuir conteúdo diferente em bancos de dados diferentes, sempre que possível, permita-me participar de onde você sabe que conectar-se a mais de três bancos de dados é um design de aplicativo ruim? Por favor, forneça a referência da literatura relacionada! E por que três ?!
Jochen Schwarze
11
Não posso apontar a literatura, mas uma boa solução poderia ser usar esquemas separados no mesmo banco de dados.
precisa

Respostas:

7

O QGIS possui um sistema de autenticação embutido . Simplesmente falando, você tem um banco de dados protegido com todas as suas credenciais, armazenadas em um qgis-auth.dbarquivo, que você pode enviar para outra pessoa que conhece uma senha mestra:

 Pasta .qgis

Quando você cria uma nova conexão PostGIS, em vez de digitar seu login / senha, você pode selecioná-la qgis-auth.db(cada par de login / senha tem um nome amigável).

Configurar a conexão PostGIS no QGIS com o sistema de autenticação

Como exemplo, eu tenho um projeto QGIS que contém muitas camadas. Cada camada é uma conexão com um banco de dados PostGIS remoto. Cada banco de dados tem seu próprio usuário. Quando abro este projeto, tenho que imprimir uma senha mestra uma vez e todas as camadas (conexões db) começam a funcionar.

Posso enviar este projeto ao meu colega, fornecendo meu qgis-auth.dbarquivo. De antemão, posso excluir algumas credenciais que não quero compartilhar deste arquivo.

Depois que meu colega colocou qgis-auth.dbem sua .qgispasta (ele pode fazer um backup de seu próprio arquivo antes), ele abre o projeto, digita a senha mestra e tudo funciona.

Você digita uma senha mestra uma vez por sessão.

Yaroslav
fonte