방법
-- 임시 사용자 생성
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