PostGIS 데이터베이스를 설정하고 Windows의 QGIS에서 열 수 있습니까?


15

QGIS 사용자가 액세스 할 수 있도록 PostGIS 데이터베이스를 설정하기위한 매뉴얼을 따르려고했지만 현재 진행 상황을 충분히 이해할 수 없습니까?

내 상황; 나는 나무와 같은 녹색 객체의 디지털화를 위해 PostGIS 데이터베이스를 만들고 이미지 파일과 함께 거리 목록을 속성 테이블에 링크하는 것과 같은 쿼리 실행을 담당하는 연수생입니다.

현재 및 미래의 지리 참조 된 객체 (각 유형마다 다른 모양 파일)를 붙여 넣을 "모양 파일 골격"(현재 개체가없고 속성 프레임 만 있음)이 있습니다. 골격 모양 파일을 가져올 수 있습니다. 데이터베이스?

그 상황;

우리는 모든 파일에 대한 백업 서버와 자체 LAN 및 인터넷 연결을 갖춘 별도의 건물에서 일합니다. 따라서 로컬 파일 액세스 및 인터넷 연결을 통해 공유하는 파일이 있습니다

데이터베이스 설정은 PostGIS 및 PostgreSQL의 최신 .exe 실행 파일 (postgresql-9.6.2-3-windows-x64 & postgis-bundle-pg96x64-setup-2.3.2)을 사용하여 원격 액세스를 통해 관리자가 수행했습니다. -1) 64 비트 시스템의 경우. 관리자가 로그인 정보가 포함 된 텍스트 파일을 제공했습니다. 여기의 교육 매뉴얼은 우분투를 다루기 때문에 상당히 혼란 스럽습니다.

내가 기록한 로그인 정보를 어디에서 사용해야할지 모르겠습니다. pgAdmin을 사용해야한다고 가정합니까?


내가 Windows에서 PostGIS와 설치 방법이 - 간단한 설치에 get.enterprisedb.com/docs/...는 다음 QGIS는 사용자가 설정 한 사용자 이름과 암호를 사용하여 쉽게 연결됩니다.
Mapperz

1
데이터베이스와 함께 작동하려면 pgAdmin 3을 설치하는 것이 좋습니다. pgAdmin4가 있습니다. 동시에 설치할 수도 있습니다. 원하는 것을 참조하십시오.
Martin Hügi

잠깐, 그렇다면 QGIS로 어디로 가야하며 어떤 파일을 stackbuilder에 설치해야합니까? nvm 편집 : 이제 확인해야하는 로컬 호스트 및 서비스 항목을 찾아야합니다.
ThunderSpark

Postgis는 필요한 '서버'를 로컬로 설치하여 데이터베이스가 작동하는 방식입니다. 그런 다음 QGIS를 사용하여 서버 (localhost)를 통해 '실시간'에 연결합니다.
Mapperz

답변:


24

관리자가 데이터베이스를 성공적으로 설치하고 필요한 세부 정보를 제공 한 것처럼 들립니다. 설치 중에 PostGIS도 구성했을 수도 있지만, 그렇지 않은 경우이 단계를 수행하면서 확인할 수 있습니다.

먼저 관리자에게 pgAdmin을 설치하도록 요청하면 그래픽 인터페이스로 PostgreSQL 데이터베이스에 액세스 할 수 있습니다.

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

pgAdmin 열기

PostgreSQL이 설치된 경우;

  • 컴퓨터에서 로컬 호스트로 표시되면 'PostgreSQL (버전 번호) (localhost : 5432)'을 두 번 클릭하여 연결할 수 있습니다.

여기에 이미지 설명을 입력하십시오

  • 네트워크에 설치되어있는 경우 관리자가 호스트 주소를 알려 주어야합니다 (아직없는 경우). 파일> 서버 추가로 이동하여 필드를 채워야합니다.

여기에 이미지 설명을 입력하십시오

연결되면 Edit > New Object > New Database

이름을 알려주세요. 서버 목록에 나타납니다.

연결하려면 두 번 클릭하십시오. Extensions이 목록에 있는지 확인하십시오 postgis.

그렇지 않다면;

SQL 아이콘을 클릭하여 SQL 창을 엽니 다

여기에 이미지 설명을 입력하십시오

입력

CREATE EXTENSION PostGIS

'조회 실행'을 누르십시오-이 아이콘 여기에 이미지 설명을 입력하십시오

목록에서 데이터베이스를 마우스 오른쪽 단추로 클릭하고 연결을 끊은 후 다시 연결하십시오. 확장이 이제 postgis나열되었습니다.

이 시점에서 새 그룹 역할과 로그인 역할을 설정할 수 있으며, 보안 요구 사항과 네트워크의 사용자가 주어진 것처럼 들립니다.

또는 테스트 만하려면 기본 역할을 계속 수행 할 수 있습니다 postgres.

다른 그룹은 다른 권한 (예 : 관리자 및 사용자)을 갖도록 설정할 수 있습니다. 그런 다음 사용자 로그인을 설정하여 사용자에게 부여하려는 권한 수준에 맞는 그룹에 할당하거나 관리자에게 모든 테이블에 대한 액세스 권한을 부여 할 수 있으며 일부는 사용자에게만 액세스 할 수 있습니다. 관리자 그룹이 필요하지 않을 수 있습니다.

SQL 창을 열고이 쿼리를 실행하십시오.

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;

관리자 로그인 설정 (postgres / superuser로 로그인)

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

사용자 로그인 설정 (postgres / superuser로 로그인)

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

QGIS를 엽니 다. 새 프로젝트를 시작하십시오.

왼쪽 툴바에서 'PostGIS 레이어 추가'아이콘을 클릭하십시오.

여기에 이미지 설명을 입력하십시오

'신규'연결을 클릭하고 위와 같이 연결 세부 사항을 입력하십시오 (데이터베이스가 로컬 인 경우 호스트는 단지 localhost).

이 시점에서 연결을 테스트 할 수 있습니다. 사용자 이름 및 비밀번호 필드로 '저장'상자를 선택하면 자격 증명이 프로필에 저장되므로 매번 입력 할 필요가 없습니다. 보안 요구에 따라 귀하에게 달려 있습니다.

Ok를 누르고 'Add PostGIS table window'를 닫습니다.

그런 다음 Database > DB Manager > DB Manager (최근 QGIS 버전에는 DB Manager가 표준으로 설치되어 있으며, 이전 버전에서는 DB Manager 플러그인을 설치해야합니다)

PostGIS를 선택하십시오. 기본 공개 스키마가 표시됩니다. 마치 공개 스키마를 사용하지 않고 새 스키마를 만들어야하는 것처럼 들립니다.

스키마> 스키마 생성-이름을 지정하십시오 ( no_spaces_or_use_underscores).

일단 생성되면 pgAdmin으로 돌아가서 연결을 끊고 다시 연결하여 확인할 수 있습니다. 이제 새로운 스키마가 있어야합니다.

QGIS DB Manager로 돌아가서 shapefile을 데이터베이스의 테이블에 업로드하십시오.

아래쪽 화살표 '레이어 / 파일 가져 오기'를 클릭하여 가져 오려는 모양 파일을 찾습니다. `...``아이콘을 클릭하여 찾아보기를 엽니 다.

테이블 이름을 지정하십시오 ( again_no_spaces_or_use_underscores)

고르다 Primary key

고르다 Geometry Column

SRIDCRS 코드를 선택 하고 입력하십시오

지금은 다른 모든 것을 남겨 두십시오 OK.

큰 데이터 세트 인 경우 특히 네트워크 / 인터넷 연결에서 시간이 오래 걸릴 수 있습니다

다시 pgAdmin으로 돌아가서 이번에 refresh를 누르면 새 테이블이에 나타납니다 Tables.

그룹 역할과 사용자를 설정 한 경우 예를 들어 스키마에 대한 액세스 권한을 부여해야합니다.

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

QGIS 및 'Add PostGIS 레이어'로 돌아갑니다. 이번에는 연결을 선택하십시오. 스키마를 열고 테이블을 강조 표시하고 '추가'를 클릭하면 프로젝트 공간에 열립니다.


PQadmin 4를 설치 한 것 같습니다. 프로그램이 요청할 때 암호를 제공하고 있지만 "hostgres // * communityname123"을 (를) 주소로 변환 할 수 없습니다 : 알 수없는 서버 오류입니다. " PQadmin4로 작업 중이며 PostGre SQL 9.6 서버는 하나뿐입니다. 여기서는 이것이 설치된 PostGre QSL 서버라고 가정하지만 주소 구성에 문제가있을 수 있습니다. 여기에 알려 주어야합니까, 아니면 제가 잘못하고 있습니까? * = 센서.
ThunderSpark

1
호스트 이름으로 'localhost'를 시도해보십시오. 그렇지 않은 경우 관리자에게 postgres가 네트워크에있는 경로를 요청하면 관리자가이를 알려줄 수 있습니다. 아마도 구문 일 수도 있고 주소에 무언가 빠져있을 수도 있습니다.
Martin Hügi

작업을 해 주셔서 감사합니다. 또한 사용자 이름을 수퍼 유저, Postgres 등으로 변경하여 실수를 한 것으로 나타났습니다. 나머지 지시 사항을 따라 작동하는지 확인하겠습니다. 마틴 감사합니다.
ThunderSpark

Martin이 작동했습니다. 여기서 작업하는 그룹의 데이터베이스를 만드는 방법의 나머지 부분을 추가 할 수 있습니까?
ThunderSpark

몇 가지 스크립트를 빠르게 추가하고 점심 시간을 기다려야했기 때문에 조금 서두르 게되었습니다. 그들은 작동해야합니다.
Martin Hügi

2

postgres / postgis의 휴대용 설치에서 프로젝트가 충분히 작동하는 것 같습니다. 나는 얼마 전 내 학생들을 위해 USB 스틱에 postgresl 폴더를 복사하여 모든 Windows PC에서 사용할 수 있도록이 작업을 수행했습니다.

  1. postgresql 을 zip 파일로 다운로드
  2. 압축 해제
  3. 시스템에 따라 postgis (postgis-bundle-pg96-2.3.1x32.zip 또는 x64)를 다운로드 하십시오.
  4. 압축을 풀고 postgresql 폴더에 복사하십시오
  5. 이 설명을 사용하여 Postgres를 휴대용 버전으로 "설치" 하십시오 . http://www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. 선택적으로 pg_hba.conf를 변경하고 "host all all 127.0.0.1/32 trust"를 추가 / 재정의합니다-암호를 확인하지 않고도 PC에서 데이터베이스로 액세스 할 수 있습니다.
  7. pgadmin3을 사용하여 데이터베이스에 연결
  8. 새 데이터베이스를 만들고 "CREATE EXTENSION postgis;"를 실행하십시오.

이제 postgesql / postgis로 작업하고 PC의 DB에 액세스 할 수 있어야합니다. 이 솔루션은 빠르고 더러운 솔루션으로 교육용으로는 작동하지만 프로덕션 / 네트워크 환경에서는 작동하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.