본문 바로가기

즐거운 project

postgreSQL에 DB, Table 추가하기/ DB, ROLE 삭제하기

- postgreSQL 에 접속

sudo -i -u postgres

 

- db02로 접속

psql -d db02

-- 이렇게 하면 db02 데이터베이스에 postgres(슈퍼유저) 권한으로 접속하게 된다.

-- 프롬프트가 db02=# 로 바뀌면 성공적으로 접속된 상태.

 

- 이상태에서 테이블을 만들면 소유자가 postgres가 된다.

CREATE TABLE tb_userinfo (
	생락
);

 

! db02가 superuser인 user01의 소유인 상태에서, postgres가 테이블을 만들어도

user01은 db02의 테이블들에 접근이 가능하다.

 

 

 

 

*

-- postgres말고 다른 사용자로 접속

psql -U user01 -d db02

 

- db삭제

-- PostgreSQL에서 특정 데이터베이스를 삭제하려면, 슈퍼유저 권한으로 접속한 뒤 DROP DATABASE 명령어를 사용하면 된다. 이때 데이터베이스 소유자가 user01이라해도, 슈퍼유저 권한마 있으면 삭제 가능.

-- 단. 해당 DB에 접속한 상태에서는 그 db를 지울 수는 없다. 

-- postgres OS 계정으로 전환

sudo -i -u postgres

psql

-- 프롬프트가 postgres=# 형태인 상테에서 

DROP DATABASE <DB이름>;

--- 연결 중인 세션(백엔드 프로세스) 강제 종료 (필요 시)

---- 데이터베이스에 연결되어 있는 세션이 있으면 DROP DATABASE가 실패할 수 있다.

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = '삭제할DB이름'
  AND pid <> pg_backend_pid();

 

-- 해당 db가 사라졌는지 확인

\l

 

 

-- 사용자가 소유한 모든 객체/권한 삭제

DROP OWNED BY myuser;

-- 사용자 (ROLE) 삭제

DROP ROLE myuser;

-- 해당 사용자가 사라졌는지 확인

\du