목록DATA/PostgreSQL (8)
블루베리소르베
보통 롤을 생성하고나면 롤에 종속되는 스키마를 만든다. 만들어진 스키마에 테이블도 만들고, 인덱스도 만들면서 신나게 작업하다보면 다른 롤에서도 해당 스키마에 접근하고 싶어진다. 그럴때 사용하는 명령어가 GRANT이다. 권한을 부여한다, 허가한다 라는 뜻의 GRANT. --보통 GRANT 명령은 이런 식으로 사용한다. GRANT [할당할 권한] ON TABLE [TABLE이름] TO [롤 이름]; GRANT SELECT ON TABLE table1 TO role1; 하지만 스키마에 테이블이 생성될 때 마다 GRANT명령으로 권한을 부여해야한다면 퇴근은 하지말라는 것이나 마찬가지다. 그런일은 없어야하니까, 스키마의 기본권한을 부여하는 방법으로 퇴근을 앞당겨보자. ALTER DEFAULT PRIVILEGES ..
테이블을 조회하려는데 이런 녀석을 만났다. ERROR: invalid byte sequence for encoding "UTF8": 0xe3 0x2a 0x20 번역하자면 인코딩에서 허가되지 않은 바이트 시퀀스가 발견되었다 정도다. 도대체 어떤 게 문제인지 한참을 고민했다. 테이블을 만들고, 다른 롤에 select 권한을 주어 테이블 내부의 데이터를 조회하였더니 이런 에러가 나를 반겨주었다. 문제는 테이블을 만든 롤에서는 조회에 전혀 오류가 발생하지 않는다는 것. 문제의 해결은 의외로 쉽게 되었다. 구글신의 은총을 받은 폭풍 검색으로 찾은 해결방법은 심플했다. export PGCLIENTENCODING='uhc' PG를 종료하고 커멘드창에 입력한 한 줄로 모든 것이 해결되었다. 환경변수에 PGCLIENTE..