반응형
PostgreSQL Docker 설치
docker pull postgres:latest
Docker 컨테이너 실행
docker run -dp 5432:5432 --name postgresql -e POSTGRES_PASSWORD=1234 -v /var/lib/postgres/data postgres
Docker PostgreSQL 서비스 재시작
docker exec <컨테이너 이름> service postgresql restart
Docker Shell 접속
docker exec -it postgresql /bin/bash
PostgreSQL 접속
psql -U postgres
PostgreSQL 데이터베이스 백업
pg_dump -U <사용자명> <데이터베이스명> > backup.sql
PostgreSQL 데이터베이스 복원
psql -U <사용자명> <데이터베이스명> < backup.sql
PostgreSQL 특정 DB 접속
psql -U <사용자명> -d <데이터베이스명>
Docker 컨테이너 나가는 방법 (ex. root@1234567a1234)
exit
postgres=# 상태에서 프롬프트 나가는 방법
\q
PostgreSQL Database 생성
create database <DB명>;
PostgreSQL 계정 생성
일반 계정
CREATE USER <계정명> PASSWORD '<비밀번호>';
슈퍼 계정
CREATE USER <계정명> PASSWORD '<비밀번호>' SUPERUSER;
PostgreSQL 계정명 수정
ALTER USER <기존 계정명> RENAME TO <새로운 계정명>;
PostgreSQL 비밀번호 수정
ALTER USER <계정명> WITH PASSWORD '<새로운 비밀번호>';
PostgreSQL 권한 부여
GRANT ALL PRIVILEGES on DATABASE <DB명> to <계정명>;
PostgreSQL 스키마에 읽기 권한 주기
GRANT USAGE ON SCHEMA public TO <계정명>;
PostgreSQL 테이블에 읽기 권한 주기
GRANT SELECT ON table_name TO username;
PostgreSQL 권한 조회
select * from information_schema.role_table_grants where grantee = '<계정명>';
PostgreSQL 스키마 권한 조회
WITH "names"("name") AS (
SELECT n.nspname AS "name"
FROM pg_catalog.pg_namespace n
WHERE n.nspname !~ '^pg_'
AND n.nspname <> 'information_schema'
) SELECT "name",
pg_catalog.has_schema_privilege('<계정명>', "name", 'CREATE') AS "create",
pg_catalog.has_schema_privilege('<계정명>', "name", 'USAGE') AS "usage"
FROM "names";
PostgreSQL 생성 권한 추가
GRANT INSERT ON table_name TO username;
PostgreSQL 수정 및 삭제 권한 추가
GRANT UPDATE, DELETE ON table_name TO username;
PostgreSQL 계정 삭제
DROP OWNED BY <계정명>;
DROP USER <계정명>;
PostgreSQL 테이블 목록 조회
\dt
PostgreSQL 데이터베이스 목록 조회
\l
반응형