PostgreSQL의 사용자 관련 명령어

postgresql 사용자 관리

psql에서 사용자 관리에 대한 명령어에 관해서 알아보자.

아래의 모든 명령어는 psql에 접속한 상태여야 한다.

사용자 생성

1
CREATE USER <생성할 유저 이름> password '<패스워드>';

사용자 역할(role) 또는 비밀번호 변경

1
2
3
ALTER USER <유저 이름> with password '<패스워드>';
ALTER USER <유저 이름> with superuser;
ALTER USER <유저 이름> with createrole;

사용자 권한 주기

1
GRANT all privilege on database <데이터베이스명> to <사용자명>;

현재 사용자 조회

1
SELECT current_user;

모든 사용자 조회

1
2
\du
\du+ # description까지 출력
Share

[CKAN]harvest 실행하기

약 3일간 삽질끝에 어떻게 돌리는 지는 알게된것 같다.

CKAN 2.8 버전을 설치하고 ckanext-harvest 익스텐션을 인스톨하게 되면 구축한 CKAN 포털 페이지를 통해서 harvest dataset을 추가할 수 있게 된다. http:///harvest의 주소로 접속하면 Add Harvest Source 라는 걸 볼 수 있다.

Create Harvest Source의 페이지를 보게 되면, Source type이란 항목을 볼 수 있는데, 처음에는 CKAN밖에 없을 것이다. 구글링을 통해 CKAN의 harvest에 대해서 찾다보면 ckan instance 뿐만 아니라 CSW Server / DCAT JSON Harvester와 같은 source type을 보곤 하는데 활성화 하기 위해서 extension을 설치하고 플러그인을 활성화해야 한다.

harvesting할 url과 다른 항목들을 적어주고 넘어가게 되면 admin의 manage에 들어가서 Restart harvest 를 해주어야 한다.

harvesting 인터페이스

harvester interface를 구현하여 harvest 작업을 실행할 수 있다. harvest 과정은 세 단계로 구성되어 있다. 아래의 모든 작업은 CKAN의 virtualenv이 실행된 상태에서 실행되어야 한다!

  • gather

두 번째 단계에서 fetch될 모든 리소스 identifier들을 컴파일 하는 과정이다.

1
paster --plugin=ckanext-harvest harvester gather_consumer --config=/etc/ckan/default/production.ini
  • fetch

리모트 서버로부터 실제 객체 자료를 가져오거나 데이터 베이스에 저장하는 작업이다.

1
paster --plugin=ckanext-harvest harvester fetch_consumer --config=/etc/ckan/default/production.ini
  • import

두 번째 단계에서 fetched된 리소스들에 대해서 필요한 모든 작업을 수행한다.

1
paster --plugin=ckanext-harvest harvester run --config=/etc/ckan/default/production.ini

gather - fetch - import 세 단계는 서로 다른 터미널을 켜놓고 하는 것을 추천한다.

실습할 때는,

  • gather
  • fetch

를 우선 실행해놓고 CKAN의 harvest를 실행하게 되면 알아서 인식해서 진행하게되는데 아직까진 이해를 못한 상태인 듯 싶다.


https://confluence.csiro.au/display/seegrid/CKAN+Harvesting+User+Guide

https://guidance.data.gov.uk/harvesting.html

https://doc.arcgis.com/ko/hub/data/federating-with-ckan.htm

https://stackoverflow.com/questions/51701375/ckan-harvester-is-not-working/51726696#51726696

Share

[CKAN]ckanext-harvest 설치하기

데이터 공유 플랫폼 CKAN에는 서로 다른 서버들간의 데이터를 주고 받을 수 있는 harvest라는 기능이 있다. 여러 익스텐션들이 존재하지만 CKAN에서 공식적으로 운영하고 있는 가장 기본이 되는 익스텐션을 설치하는 과정을 정리하려고 한다.

이 플러그인을 활성화하게 되면, CLI와 Web UI를 통해서 하베스팅 기능을 사용할 수 있다고 한다.

사전에 준비해야할 것으로는 데이터를 주고받을 모든 CKAN 서버는 최소 버전 2.0 이상을 사용해야 한다는 것이다.

설치

  1. redis 설치

백엔드로 아래의 두 가지 소프트웨어를 사용할 수 있다.

Redis

RabbitMQ

각자 사용하고 싶은 걸 사용해도 무방하지만, redis가 더 안정적이고 믿을 만 하다고 하기 때문에 CKAN org는 redis를 추천한다.

1
2
sudo apt-get update
sudo apt-get install redis-server

그리고 CKAN의 production.ini 설정파일에 아래의 설정을 추가해준다.

1
ckan.harvest.mq.type = redis

혹시 모르니 RabbitMQ도 정리해보자.

1
2
3
4
5
sudo apt-get update
sudo apt-get install rabbitmq-server

## in production.ini
ckan.harvest.mq.type = amqp
  1. 가상환경 활성화
1
. /usr/lib/ckan/default/bin/activate
  1. ckanext-harvest 패키지 다운로드

activate한 가상환경에 harvest를 위한 파이썬 패키지를 설치한다.

1
pip install -e git+https://github.com/ckan/ckanext-harvest.git#egg=ckanext-harvest

여기서 맨할 헤메곤 했는데, 그 이유는 pip의 권한 때문이었던 것 같다. 보통은 python -m pip install 을 하게 되면 무리없이 설치하곤 했는데 가끔씩 permission erorr를 내뱉는 경우가 있다.

sudo를 사용하거나 python -m pip를 사용했는데도 permission error로 인해 설치하는데 어려움을 겪는다면 현재 내가 사용중인 pip의 python을 찾아서 이용해보도록 한다!!

  1. 패키지 설치

위에서 다운받은 패키지의 폴더에 들어가 설치한다.

1
2
cd /usr/lib/ckan/default/src/ckanext-harvest
pip install -r pip-requirements.txt
  1. 플러그인 추가

CKAN 설정파일에서 플러그인 harvest와 ckan_harvester를 추가한다.

1
ckan.plugins = ... harvest ckan_harvester
  1. 필수 설정

가상환경을 activate 한 채로, 필수적인 테이블을 생성하기 위해 다음과 같은 명령어를 실행한다.

1
paster --plugin=ckanext-harvest harvestet initdb --config=/etc/ckan/default/production.ini
  1. 재시작
1
sudo service apache2 restart
  1. 접속
1
http://ckan_url/harvest
Share