[PostgreSQL] 사용자 생성 및 DB/스키마/테이블 사용 권한주기

식빵·2024년 1월 25일
0

postgresql-memo

목록 보기
33/35

방법

-- 임시 사용자 생성
create user <사용자 명> with password '<비밀번호>';

-- 사용자의 DB 접근 허용
GRANT CONNECT ON DATABASE <DB 명> TO <사용자 명>;

-- 스키마 내의 테이블 생성 및 사용 허용
GRANT CREATE, USAGE ON SCHEMA <스키마 명> TO <사용자 명>;

-- DB 내의 특정 스키마(여기서는 public)에 있는 모든 테이블에 대한 동작 허용
-- alter default 를 통해서 신규 테이블이 생성되더라도 권한이 똑같이 적용
ALTER DEFAULT PRIVILEGES FOR ROLE <사용자 명> IN SCHEMA <스키마명>
GRANT ALL ON TABLES TO <사용자 명>;


-- 참고: 조금 상세하게 지정하고 싶으면 아래처럼하세요
-- ALTER DEFAULT PRIVILEGES FOR ROLE <사용자 명> IN SCHEMA <스키마명>
-- GRANT SELECT, DELETE, UPDATE, INSERT, REFERENCES, TRIGGER, TRUNCATE
-- ON TABLES TO <사용자 명>;

-- 테이블에서 시퀀스를 사용하면 그에 대한 사용, 조회도 허용해야 합니다.
ALTER DEFAULT PRIVILEGES FOR ROLE <사용자 명> IN SCHEMA <스키마 명>
GRANT USAGE, SELECT, UPDATE ON SEQUENCES TO <사용자 명>;

참고링크:
https://www.postgresqltutorial.com/postgresql-administration/postgresql-grant/
https://dba.stackexchange.com/questions/135168/alter-default-privileges-for-role
https://dba.stackexchange.com/questions/117109/how-to-manage-default-privileges-for-users-on-a-database-vs-schema/117661#117661

profile
백엔드를 계속 배우고 있는 개발자입니다 😊

0개의 댓글