Configurando o banco de dados PostGIS e abrindo-o no QGIS no Windows?

14

Tentei seguir os manuais para configurar um banco de dados PostGIS para ser acessado por usuários com QGIS, mas no momento não consigo entender o suficiente para progredir?

Minha situação; Eu sou um trainee responsável por criar um banco de dados PostGIS para digitalizar objetos verdes (como árvores) e executar consultas - como vincular uma lista de ruas, com arquivos de imagem, à tabela de atributos.

Eu tenho "esqueletos de shapefile" (atualmente vazios sem objetos, apenas o quadro de atributo "onde os objetos georreferenciados atuais e futuros (um shapefile diferente para cada tipo) serão colados / criados). Confio que posso importar esses shapefiles de esqueleto para o banco de dados?

A situação;

Trabalhamos em um prédio separado, com nossa própria LAN e conexão à Internet, com um servidor de backup para cada arquivo. Portanto, temos acesso a arquivos locais e arquivos que compartilhamos através de uma conexão com a Internet

A configuração do banco de dados foi feita por um administrador via acesso remoto, usando os arquivos de execução .exe mais recentes do PostGIS e PostgreSQL (postgresql-9.6.2-3-windows-x64 e postgis-bundle-pg96x64-setup-2.3.2 -1) para minha máquina de 64 bits. O administrador me forneceu um arquivo de texto com informações de login. Os manuais de treinamento aqui são bastante confusos, pois eles lidam com o Ubuntu.

Estou preso porque não sei onde usar as informações de login que anotei? Suponho que preciso usar o pgAdmin?

ThunderSpark
fonte
É assim que eu instalo o PostGIS no Windows - em uma instalação simples, get.enterprisedb.com/docs/… , o QGIS se conecta facilmente com o nome de usuário e a senha que você definiu.
Mapperz
1
Eu recomendaria definitivamente a instalação do pgAdmin 3 para trabalhar com seu banco de dados. Agora existe um pgAdmin4, você também pode instalá-lo ao mesmo tempo e ver qual prefere.
Martin Hügi 21/03
Espere, então para onde você vai no QGIS e quais arquivos devo instalar no stackbuilder? Editar nvm: o encontrou agora, preciso encontrar quais entradas de host e serviço locais devo fazer.
ThunderSpark 21/03
O Postgis instalará o 'servidor' necessário localmente, assim é como o banco de dados funciona - você usa o QGIS para conectar 'ao vivo' através do servidor (localhost).
Mapperz

Respostas:

23

Parece que seu administrador instalou o banco de dados com sucesso e forneceu os detalhes necessários. Eles também podem ter configurado o PostGIS durante a instalação, mas, se não, você pode verificar isso ao seguir estas etapas.

Primeiro, peça ao administrador para instalar o pgAdmin. Isso permitirá que você acesse o banco de dados do PostgreSQL com uma interface gráfica.

https://www.pgadmin.org/download/windows.php

Abra o pgAdmin

Se o seu PostgreSQL foi instalado;

  • no seu computador, ele aparecerá como localhost; você poderá clicar duas vezes em 'PostgreSQL (versão nº.) (localhost: 5432)' para conectar-se a ele.

insira a descrição da imagem aqui

  • Se ele foi instalado na rede, você precisará do administrador para informar o endereço do host (se ainda não o tiver), e então precisará ir em Arquivo> Adicionar Servidor e preencher os campos;

insira a descrição da imagem aqui

Uma vez conectado, vá para Edit > New Object > New Database

Dê um nome a ele. Ele aparecerá na sua lista de servidores.

Clique duas vezes para conectar-se a ele. Verifique o Extensionspara ver se ele lista postgis.

Se não;

Abra a janela do SQL clicando no ícone SQL

insira a descrição da imagem aqui

e digite

CREATE EXTENSION PostGIS

Pressione 'Executar consulta' - este ícone insira a descrição da imagem aqui

Clique com o botão direito do mouse no banco de dados na lista, desconecte e reconecte. As extensões agora devem ter sido postgislistadas.

Você pode configurar uma nova função de grupo e a função de logon neste momento; parece que você deve atender às necessidades de segurança e aos usuários em toda a rede.

Ou, se você quiser testá-lo, pode continuar com a função padrão postgres.

Grupos diferentes podem ser configurados para ter permissões diferentes, por exemplo, administrador e usuário. Os logins de usuário podem ser configurados e atribuídos a qualquer grupo que se enquadre no nível de permissão que você deseja conceder ao usuário, ou você pode conceder acesso a todas as tabelas para administrador e apenas algumas para usuários etc. Você pode não precisar de um grupo de administradores.

Abra a janela SQL e execute essas consultas;

CREATE ROLE user_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE admin_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

GRANT user_group_name TO admin_group_name

GRANT ALL ON DATABASE database_name TO admin_group_name;

Configure um login de administrador (logado como postgres / superusuário)

CREATE ROLE admin_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT admin_group_name TO admin_name;

Configure um login de usuário (logado como postgres / superusuário)

CREATE ROLE user_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT users_group_name TO user_name;

Abra o QGIS. Inicie um novo projeto.

Clique no ícone 'Adicionar camada PostGIS' na barra de ferramentas esquerda.

insira a descrição da imagem aqui

Clique em 'Nova' conexão e insira os detalhes da conexão como acima (se o seu banco de dados for local, o host será apenas localhost).

Você pode testar a conexão neste momento. Se você marcar as caixas 'Salvar' no campo nome de usuário e senha, ele armazenará suas credenciais no seu perfil, para que você não precise entrar sempre. Depende das suas necessidades de segurança.

Pressione Ok e feche a 'Janela da tabela Add PostGIS'

Em seguida, acesse Database > DB Manager > DB Manager (Versões recentes do QGIS têm o DB Manager instalado como padrão; versões anteriores você precisará instalar o plug-in do DB Manager)

Selecione PostGIS. O esquema público padrão será mostrado. Parece que você deve criar um novo esquema em vez de usar o público.

Esquema> Criar esquema - Dê um nome a ele ( no_spaces_or_use_underscores)

Depois de criado, você pode verificar voltando ao pgAdmin, desconectar, reconectar. O novo esquema agora deve estar lá.

Voltar ao QGIS DB Manager para fazer upload de um shapefile em uma tabela no banco de dados.

Clique na seta para baixo 'Importar camada / arquivo' e navegue até o shapefile que você deseja importar. Clique no ícone `` ... '' para abrir a navegação.

Atribua um nome à tabela ( again_no_spaces_or_use_underscores)

Selecione Primary key

Selecione Geometry Column

Selecione SRIDe insira o código CRS

Por enquanto, deixe tudo o resto e OK.

Se for um conjunto de dados grande, pode demorar um pouco, principalmente em uma conexão de rede / internet

Novamente, você pode voltar para o pgAdmin, pressionar atualizar desta vez e a nova tabela aparecerá Tables.

Se você configurou funções e usuários de grupo, precisará conceder acesso ao esquema, por exemplo;

GRANT ALL ON SCHEMA schema_name TO admin_group_name;
GRANT USAGE ON SCHEMA schema_name TO user_group_name;

Voltar ao QGIS e 'Adicionar camada PostGIS'. Desta vez, selecione Conectar. Abra o esquema e destaque a tabela e clique em 'Adicionar' e ele será aberto no espaço do seu projeto.

Martin Hügi
fonte
Parece que eles instalaram o PQadmin 4, estou fornecendo a senha quando o programa solicita, mas recebo "não foi possível traduzir o nome do host" postgres // * communityname123 "para o endereço: Erro desconhecido do servidor". Então, o que devo fazer aqui, lembre-se de que estou trabalhando com o PQadmin4 e há apenas um servidor PostGre SQL 9.6. Então, eu vou assumir aqui que este é o servidor PostGre QSL que eles instalaram, mas eles podem ter feito algo errado com a configuração do endereço. Então, preciso informá-los aqui ou estou fazendo algo errado? * = sensor.
ThunderSpark
1
Tente 'localhost' como o nome do host, apenas para excluir ou excluir isso. Se não, pergunte ao administrador o caminho para onde o postgres está na rede, eles devem poder fornecer isso. Provavelmente é apenas sintaxe, ou está faltando algo no endereço.
Martin Hügi 22/03
Obrigado que deu certo, eles cometeram erros ao mudar o nome de usuário para superusuário, Postgres e assim por diante. Vou seguir o restante das instruções e ver se funciona. Obrigado Martin.
ThunderSpark 22/03
Tudo bem, Martin, você pode adicionar o restante de como criar o banco de dados para um grupo que está trabalhando aqui?
ThunderSpark
Rapidamente adicionei alguns scripts, tive que esperar pela minha pausa para o almoço, então um pouco apressado. Eles deveriam trabalhar.
Martin Hügi 22/03
2

Parece que seu projeto funcionará o suficiente em uma instalação portátil do postgres / postgis. Eu fiz isso com meus alunos há um tempo atrás, para que eles possam copiar a pasta postgresl em um pendrive e usá-la em todos os computadores com Windows:

  1. Faça o download do postgresql como um arquivo zip
  2. Descompacte
  3. Faça o download do postgis (postgis-bundle-pg96-2.3.1x32.zip ou x64), de acordo com o seu sistema
  4. Descompacte e copie-o para a pasta postgresql
  5. Use esta explicação para "instalar" o Postgres como uma versão portátil: http://www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. Opcionalmente, altere pg_hba.conf e adicione / substitua "host all all all 127.0.0.1/32 trust" - isso permite o acesso do seu PC ao banco de dados sem verificar a senha, o que é aceitável neste caso, mas não é permitido em ambientes de produção
  7. Conecte-se ao banco de dados usando pgadmin3
  8. Crie um novo banco de dados e execute "CREATE EXTENSION postgis;"

Agora você deve poder trabalhar com o postgesql / postgis e acessar o db no seu PC. Esteja ciente de que esta é uma solução rápida e suja, que funciona para fins educacionais, mas não em um ambiente de produção / rede.

MughtyWinky
fonte