여러 시스템(사용자)이 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
'MS Azure Log > Azure PostgreSQL' 카테고리의 다른 글
2-9. Azure PostgreSQL Data Type vs MS-SQL 비교 (0) | 2023.01.05 |
---|---|
3-2-1. Azure PostgreSQL 사용자(User/Role) 만들기-(테이블 권한없음-해결) (0) | 2023.01.03 |
3-1. Azure PostgreSQL 스키마(Schema) 관리 (0) | 2023.01.02 |
2-2. Azure PostgreSQL Data Type - 자동증가형식 (0) | 2023.01.02 |
2-1. Azure PostgreSQL Data Type - 숫자형식 (0) | 2023.01.02 |