본문 바로가기
Q&A2022년 12월 11일1분 읽기

PostgreSQL 사용자 권한 관리

장
장태호
조회 610댓글 1

PostgreSQL에서 사용자별로 권한을 다르게 주는 방법을 알려주세요.

댓글 1

김김영삼3년 전

PostgreSQL 사용자 권한 관리:

-- 사용자 생성
CREATE USER readonly WITH PASSWORD 'pass123';
CREATE USER appuser WITH PASSWORD 'pass456';

-- 읽기 전용 권한
GRANT CONNECT ON DATABASE mydb TO readonly;
GRANT USAGE ON SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
-- 미래 테이블에도 적용
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO readonly;

-- 앱 사용자 (CRUD)
GRANT CONNECT ON DATABASE mydb TO appuser;
GRANT USAGE ON SCHEMA public TO appuser;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO appuser;
GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO appuser;

-- 권한 확인
\du -- 사용자 목록
\dp users -- 테이블 권한

최소 권한 원칙: 앱 사용자에게 DROP, CREATE 권한은 주지 마세요.

Ctrl+Enter로 등록