Postgresql tips

postgresql 컬럼값의 데이터 사이즈 구하기

1
2
3
SELECT pg_column_size(column명)
# ex
SELECT pg_column_size('123.231')

테이블의 index 가져오기

1
2
3
select *
from pg_indexes
where tablename = '테이블 명';

client 접속

1
$ psql [DB명] [-U 계정명] [-p 포트번호] [-h 호스트]

계정 관련 쿼리

1
2
3
4
5
6
7
8
# 계정 생성
create user "계정명" password '비밀번호';
# DB 생성
create database "DB 명" owner "소유자 계정명";
# 스키마 생성
create schema 스키마명 authorization 계정명;
# client 내에서 DB 이동
\c DB명 계정명

pg_hba.conf 파일 접속 관련 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all md5
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
  • 접속 설정 예시
1
2
3
4
5
host    all    all    외부ip/32    md5    (해당 IP가 모든 user과 모든 DB 접속 가능하게 함)
host all all 0.0.0.0/0 md5 (모든 IP가 모든 user와 모든 DB 접속 가능하게 함)
host db명 user명 외부ip/32 md5 (해당 IP가 해당 user와 해당 DB만 접속 가능하게 함)

host edb enterprisedb 192.168.1.144/32 md5 (192.168.1.144가 enterprisedb 계정과 edb DB만 접속 가능하게 함)
  • METHOD: 접속 클라이언트 인증시 서버가 사용하는 인증 방법를 명시.
    • trust : 패스워드 없이 접근 가능
    • reject : 거부
    • md5 : 패스워드를 md5로 암호화해서 전송
    • crypt : crypt로 암호화 해서 전송 Postgres 7.2이후부터는 사용 안함. (이전버전설정 호환용)
    • password : text로 패스워드를 전송하는 것.
    • krb4, krb5 : KerberOS V4, 5를 지원한다.
    • ident : 접속 ClientOS User이름을 확인하는 방법
    • pam : PAM(Pluggable Authentication Modules)서비스를 사용한 인증
Share