¿Configurando la base de datos PostGIS y abriéndola en QGIS en Windows?

14

He tratado de seguir los manuales para configurar una base de datos PostGIS a la que los usuarios puedan acceder con QGIS, pero en este momento no puedo entender lo suficiente para progresar.

Mi situación; Soy un aprendiz responsable de crear una base de datos PostGIS para digitalizar objetos verdes (como árboles) y ejecutar consultas, como vincular una lista de calles, con archivos de imagen, a la tabla de atributos.

Tengo "esqueletos de archivos de formas" (actualmente vacíos sin objetos, solo el marco de atributos "donde se pegarán / crearán los objetos georreferenciados actuales y futuros (un archivo de formas diferente para cada tipo). Confío en que solo puedo importar esos archivos de formas de esqueletos en ¿la base de datos?

La situación;

Trabajamos en un edificio separado con nuestra propia LAN y conexión a Internet con un servidor de respaldo para cada archivo. Entonces tenemos acceso a archivos locales y archivos que compartimos a través de una conexión a Internet

La configuración de la base de datos la realizó un administrador mediante acceso remoto, utilizando los últimos archivos de ejecución .exe de PostGIS y PostgreSQL (postgresql-9.6.2-3-windows-x64 y postgis-bundle-pg96x64-setup-2.3.2 -1) para mi máquina de 64 bits. El administrador me proporcionó un archivo de texto con información de inicio de sesión. Los manuales de capacitación aquí son bastante confusos ya que tratan con Ubuntu.

¿Estoy atascado porque no sé dónde usar la información de inicio de sesión que he anotado? ¿Asumo que necesito usar pgAdmin?

ThunderSpark
fuente
Así es como instalo PostGIS en Windows: en una instalación simple get.enterprisedb.com/docs/… , QGIS se conectará fácilmente con el nombre de usuario y la contraseña que establezca.
Mapperz
1
Definitivamente recomendaría instalar pgAdmin 3 para trabajar con su base de datos. Ahora hay un pgAdmin4, también puede buscar instalarlo al mismo tiempo, ver cuál prefiere.
Martin Hügi
Espera, entonces, ¿a dónde ir en QGIS y qué archivos debo instalar en el generador de pila? Editar nvm: lo encontré ahora Necesito encontrar qué host local y entradas de servicio debo hacer.
ThunderSpark
Postgis instalará localmente el 'servidor' requerido de esta manera funciona la base de datos: luego usa QGIS para conectarse 'en vivo' a través del servidor (localhost).
Mapperz

Respuestas:

23

Parece que su administrador instaló la base de datos con éxito y le proporcionó los detalles que necesitará. Es posible que también hayan configurado PostGIS durante la instalación, pero si no, puede verificarlo a medida que realiza estos pasos.

Primero solicite a su administrador que instale pgAdmin, esto le permitirá acceder a su base de datos PostgreSQL con una interfaz gráfica.

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

Abrir pgAdmin

Si su PostgreSQL ha sido instalado;

  • en su computadora se mostrará como localhost, debe poder hacer doble clic en 'PostgreSQL (versión no.) (localhost: 5432)' para conectarse a él.

ingrese la descripción de la imagen aquí

  • Si se ha instalado en la red, necesitará que su administrador le informe la dirección del host (si aún no la tiene), deberá ir a Archivo> Agregar servidor y completar los campos;

ingrese la descripción de la imagen aquí

Una vez conectado, vaya a Edit > New Object > New Database

Dale un nombre. Aparecerá en su lista de servidores.

Haga doble clic para conectarse a él. Verifique Extensionssi aparece en la lista postgis.

Si no;

Abra la ventana SQL haciendo clic en el icono de SQL

ingrese la descripción de la imagen aquí

y escribe

CREATE EXTENSION PostGIS

Presione 'Ejecutar consulta' - este icono ingrese la descripción de la imagen aquí

Haga clic derecho en la base de datos en la lista y desconecte, y luego vuelva a conectar. Las extensiones ahora deberían haber postgisaparecido.

Puede configurar un nuevo rol de grupo, y el rol de inicio de sesión en este punto, parece que debería tener en cuenta las necesidades de seguridad y sus usuarios en toda la red.

O si solo desea probarlo, puede continuar con el rol predeterminado postgres.

Se pueden configurar diferentes grupos para tener diferentes permisos, por ejemplo, administrador y usuario. Los inicios de sesión de los usuarios se pueden configurar y asignar a cualquier grupo que se ajuste al nivel de permiso que desea otorgar al usuario, o puede dar acceso a todas las tablas al administrador, y solo algunas a los usuarios, etc. Es posible que no necesite un grupo de administradores.

Abra la ventana SQL y ejecute estas 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 un inicio de sesión de administrador (conectado como postgres / superuser)

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

Configurar un inicio de sesión de usuario (conectado como postgres / superuser)

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

Abrir QGIS. Comience un nuevo proyecto.

Haga clic en el icono 'Agregar capa PostGIS' en la barra de herramientas de la izquierda.

ingrese la descripción de la imagen aquí

Haga clic en la conexión 'Nueva' e ingrese los detalles de la conexión como se indica arriba (si su base de datos es local, entonces el host es justo localhost).

Puede probar la conexión en este punto. Si marca las casillas 'Guardar' por el campo de nombre de usuario y contraseña, almacenará sus credenciales en su perfil para que no necesite ingresar cada vez. Depende de usted según sus necesidades de seguridad.

Presione Ok y cierre la ventana 'Agregar tabla de PostGIS'

Luego vaya a Database > DB Manager > DB Manager (Las versiones recientes de QGIS tienen DB Manager instalado como estándar, las versiones anteriores necesitarán instalar el complemento DB Manager)

Seleccione PostGIS. Se mostrará el esquema público predeterminado. Parece que debería crear un nuevo esquema en lugar de utilizar el público.

Esquema> Crear esquema: asígnele un nombre ( no_spaces_or_use_underscores)

Una vez creado, puede verificar volviendo a pgAdmin, desconectar, volver a conectar. El nuevo esquema ahora debería estar allí.

Regrese a QGIS DB Manager para cargar un archivo de forma en una tabla en la base de datos.

Haga clic en la flecha hacia abajo 'Importar capa / archivo', busque el archivo de forma que desea importar. Haga clic en el icono `` ... '' para abrir la exploración.

Dale un nombre a la mesa ( again_no_spaces_or_use_underscores)

Seleccione Primary key

Seleccione Geometry Column

Seleccione SRIDe ingrese el código CRS

Por ahora deja todo lo demás y OK.

Si se trata de un conjunto de datos grande, podría llevar un tiempo, especialmente a través de una conexión de red / internet

Una vez más, puede volver a pgAdmin, presione actualizar esta vez y aparecerá la nueva tabla Tables.

Si ha configurado roles de grupo y usuarios, deberá otorgar acceso al esquema, por ejemplo;

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

Volver a QGIS y 'Agregar capa PostGIS'. Esta vez seleccione Conectar. Abra el esquema y resalte la tabla y haga clic en 'Agregar' y se abrirá en el espacio de su proyecto.

Martin Hügi
fuente
Parece que instalaron PQadmin 4, proporciono la contraseña cuando el programa la solicita, pero obtengo "no se pudo traducir el nombre de host" postgres // * communityname123 "a la dirección: Error de servidor desconocido". Entonces, ¿qué debo hacer aquí? Tenga en cuenta que estoy trabajando con PQadmin4 y que solo hay un servidor PostGre SQL 9.6. Así que voy a suponer aquí que este es el servidor PostGre QSL que instalaron, pero pueden haber hecho algo mal con la configuración de la dirección. Entonces, ¿debo informarles aquí o estoy haciendo algo mal? * = sensor.
ThunderSpark
1
Pruebe 'localhost' como nombre de host, solo para descartarlo dentro o fuera. Entonces, si no, pregúntele a su administrador la ruta hacia donde se encuentra postgres en la red, ellos deberían poder darle esto. Probablemente es solo sintaxis, o falta algo en la dirección.
Martin Hügi
Gracias, eso funcionó, resultó que cometieron un error al cambiar también el nombre de usuario a superusuario, Postgres, etc. Seguiré el resto de las instrucciones y veré si funciona. Gracias Martin.
ThunderSpark
Oke, funciona Martin, ¿podría agregar el resto de cómo hacer la base de datos para un grupo que está trabajando aquí?
ThunderSpark
Agregué rápidamente algunos guiones, tuve que esperar a la hora del almuerzo, así que me apresuré un poco. Deberían funcionar
Martin Hügi
2

Parece que su proyecto funcionará lo suficiente en una instalación portátil de postgres / postgis. Hice esto para mis alumnos hace un tiempo, para que puedan copiar la carpeta postgresl en un dispositivo USB y usarla en cada PC con Windows:

  1. Descargar postgresql como un archivo zip
  2. Descomprimirlo
  3. Descargue postgis (postgis-bundle-pg96-2.3.1x32.zip o x64), de acuerdo con su sistema
  4. Descomprímalo y cópielo en la carpeta postgresql
  5. Use esta explicación para "instalar" Postgres como una versión portátil: http://www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. Opcionalmente, cambie pg_hba.conf y agregue / anule "host all all 127.0.0.1/32 trust"; esto permite el acceso desde su PC a la base de datos sin verificar la contraseña, lo cual está bien en este caso, pero no se puede usar en entornos de producción
  7. Conéctese a la base de datos usando pgadmin3
  8. Cree una nueva base de datos y ejecute "CREATE EXTENSION postgis;"

Ahora debería poder trabajar con postgesql / postgis y acceder a la base de datos en su PC. Tenga en cuenta que esta es una solución rápida y sucia, que funciona con fines educativos pero no en un entorno de producción / red.

MughtyWinky
fuente