메모 or 스크랩/GIS관련

Windows기반 ArcGIS 10.8.x와 PostgreSQL + PostGIS 설정

JROSS 2022. 3. 18. 17:30
반응형

create_database_user.py
0.01MB

- 조건 : ArcGIS Desktop 10.8.0 + PostgreSQL 11.x + PostGIS 3.0

- 기반 : Windows 10

* ArcGIS 버전에 대한 System Requirement를 숙지하여 각 단위 S/W에 맞는 버전 설치

> 설치
1. S/W 설치
 - PostgreSQL + PostGIS 설치

2. 연결설정
 - 방화벽 규칙에서 PostgreSQL Port(기본 = 5432) 허용
 - PostgreSQL 설치폴더\data\pg_hba.conf 편집
  : '# IPv4 local connections:' 항목에 'host    all             all             0.0.0.0/0            md5' 추가
  : pgAdmin에서 PostgreSQL 11에서 'Reload configuration'
 - 외부 Client PC에서 접속 확인

3. ArcGIS st_geometry 설정
 - st_geometry.dll 붙여 넣기
  : "\ArcGIS 설치폴더\DatabaseSupport\PostgreSQL\운영체제\" 경로의 st_geometry.dll 복사
  : "\PostgreSQL 설치폴더\버전\lib\" 경로에 st_geometry.dll 붙여넣기

> 설정
* Database name, user name은 소문자로 하기. 대문자는 인식이 않되는 경우가 발생됨.

4. GIS DB 사용자 생성
 : pgAdmin를 통해 sde 사용자 생성 및 권한[login, superuser, 상속] 부여
 : pgAdmin를 통해 GIS DB 사용자 생성 및 권한[login, superuser, 상속] 부여

5. Database 생성
 : pgAdmin를 통해 sde 사용자가 소유자인 Database 생성

6. postGIS 활성화
 - SQL Shell에서 확장 생성
  : "create extension postgis;" 질의문 실행
  : "select postgis_version();" 으로 확인

7. ArcGIS Desktop의 'Create Enterprise Geodatabase'로 DB 및 sde 사용자 생성
 - ArcGIS Desktop의 도구 中 'Create Enterprise Geodatabase'를 통해 공간DB 생성
 : Instance는 PostgreSQL 서버 ip, postgres 암호, sde 암호 필수 입력
 : keycodes 파일 위치 = ArcGIS Server의 "C:\Program Files\ESRI\License버전\sysgen" 에서 불러오기.
 - pgAdmin의 Database > * > Schema에 'sde' 항목이 생성됨.

8. ArcGIS Desktop에서 'Create Database User' 실행
 : Database Connections 항목을 통해 PostgreSQL에 sde 계정으로 접속
 : 마우스 오른쪽 'Create Database User' 로 생성된 GIS DB 사용자 계정 정보 입력 및 실행
 : 생성된 Database > Schema에 GIS DB 사용자 명칭으로 생성됨 확인

9. Client PC에서 create_database_user.py 실행

 : 첨부파일 참조
 : create_database_user.py --DBMS POSTGRESQL -i PostgreSQL_ip -D GIS_DB_명칭 -U postgres -P {postgres 암호} --utype DATABASE_USER -u {GIS DB 사용자 ID} -p {GIS DB 사용자 암호}

10. GIS DB 사용자에게 권한 부여
 - SQL Shell 실행 후 sde로 로그인
  : "GRANT USAGE ON SCHEMA {GIS DB 사용자 이름} TO PUBLIC;" 실행
  : "GRANT SELECT, INSERT, UPDATE, DELETE ON public.Geometry_columns TO {사용자 이름};" 실행

11. PostgreSQL 서버 재시작 및 점검
- ArcCatalog > Database Connections를 통해 GIS File/Data의 Import
 : GIS DB 사용자에 대한 Table에 GIS Data가 Import 되었는지 확인

 

 

p.s 상기 내용은 ESRI의 기술문서, Trouble Shooting 등에 관련한 내용 등을 참고하여 종합하였습니다.

    중복되는 절차 등이 존재하는 것 같으나, 여러번의 삽질 끝에 정상적으로 구동됨을 확인하며 기록하였습니다.

 

> 참고 URL

- Add login roles to PostgreSQL : https://desktop.arcgis.com/en/arcmap/latest/manage-data/gdbs-in-postgresql/add-users-postgresql.htm

반응형