본문 바로가기

DB/Postgresql

[Postgresql] 테이블 및 뷰에 대한 사용자 권한 부여 및 계정생성

실무 프로젝트를 진행하다 보면 타업체에서 필요한 정보를 조회 할수 있도록 DB접근 계정과 특정 테이블이나 뷰만 조회할 수 있도록 권한을 부여할 일이 많아 해당 내용을 정리 및 공유하려 합니다

사용자계정생성 및 삭제

 

CREATE로 계정을 생성하며,
ALTER USER과 PASSWORD 옵션을 이용하여 패스워드를 생성합니다

 

CREATE USER Guest1;
ALTER USER GUEST1 PASSWORD 'q1w2e3r4!';

-> Guest1이라는 계정 생성
-> Guest1계정의 패스워드를 'q1w2e3r4!'로 생성


DROP으로 생성한 계정 삭제

 

DROP USER Guest1;

-> Guest1 계정 삭제



사용자계정에 조회권한부여


GRANT로 사용자계정에 조회 권한을 부여할 수 있습니다
SELECT 뿐아니라 [SELECT, INSERT, UPDATE] 등의 권한도 부여 가능합니다

POSTGRESQL에서 테이블에 대한 권한을 부여할 때 주의해야할 점은
MYSQL과 같은 DB와 달리 스키마라는 개념이 존재하기때문에
스키마에 대한 엑세스 권한테이블에 대한 권한을 두번 주어야합니다

GRANT USAGE ON을 통해 스키마에 대한 엑세스 권한을 부여합니다

 

--GRANT USAGE ON SCHEMA [스키마명] to [사용자계정명];
GRANT USAGE ON SCHEMA star to Guest1;

-> Guest1계정에 star스키마에 대한 엑세스 권한 부여


star스키마 내부의 테이블에 대한 권한 부여

 

-- GRANT [SELCT, UPDATE, INSERT...] ON [테이블명] to [계정명]
GRANT SELECT ON star.userinfo to 'Guest1';

-> Guest1계정에 star.userinfo 테이블 조회권한 부여