여러 시스템(사용자)이 DB에 접근 할 수 있으므로 권한을 통제를 할 필요가 있다.
이 경우 크게 두가지(관리자,사용자) 케이스가 있을 수 있다. 

1. Azure Database for PostgreSQL 추가관리자 만들기

CREATE ROLE <new_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>';

GRANT azure_pg_admin TO <new_user>;


2. Azure Database for PostgreSQL 사용자 만들기

CREATE ROLE <db_user> WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD '<StrongPassword!>';

GRANT CONNECT ON DATABASE "<db_name>" TO <db_user>;
 
 
--스키마 테이블 SELECT권한부여
GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
 
--[[추가]] 권한부여후 추가되는 테이블에 자동권한 부여하기. 
ALTER DEFAULT PRIVILEGES IN SCHEMA <schema_name>  GRANT SELECT ON TABLES TO <db_user>;
 
※ 추가적으로 UPDATE, INSERT, DELETE 권한 부여 필요시... 위에 쿼리 참고해서 적용.
 
 
▶ 추가로 자세한 데이터베이스 사용자의 역할 및 권한은 PostgreSQL설명서를 참고.
 
3. Azure Database for PostgreSQL Role 정보 확인
 
    SELECT * FROM PG_ROLES;
이름 설명
rolname name 역할 이름
rolsuper bool 슈퍼 유저 권한의 유무
rolinherit bool 멤버 롤의 권한을 상속할지 여부
rolcreaterole bool 역할 만들기 권한의 유무
rolcreatedb bool 데이터베이스 생성 권한이 있는지
rolcanlogin bool 로그인을 수있는 역할 여부
rolreplication bool 복제에 대한 역할 여부
rolconnlimit int4 최대 동시 연결 (-1 무제한)
rolpassword text 비밀번호 (다만, ******** 같이 표시)
rolvaliduntil timestamptz 암호 만료 (만료되지 않으면 NULL)
rolbypassrls bool 모든 단위 보안 정책을 무시할지 여부
rolconfig text[] 런타임 구성 변수에 대한 역할 기본
oid oid 롤의 ID

 

#참조 :  사용자 만들기 - Azure Database for PostgreSQL - 단일 서버 | Microsoft Learn

+ Recent posts