database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10529 게시물 읽기
No. 10529
postgres ddl, dml 계정분리 질문 드려봅니다...
작성자
박용수(dendrobium)
작성일
2025-07-01 19:03ⓒ
2025-07-01 19:11ⓜ
조회수
123

현업 실DB 생성 및 관리시 계정분리 어떤 구성으로 사용하시나요... 스키마가 생소하고 경험이 없어서 조언좀 부탁드리겠습니다. ㅠ 

백업 같은 권한은 super유저 권한에서 관리된다고 해서 super유저를 관리자 계정으로 생각 하고 있습니다...


1. 처음 설치 되었을 시 defalut로 생성된 DB(postgres) 를 그대로  사용한다???

초기 설치된 postgres /postgres (OWNER_USER=DDL용) 계정을 관리자(ddl용) 계정으로 사용

신규  app_user/app_user(APP_USER, DML용)  를 만들어서 CRUD 등 role(user)통해 필요권한 부여

두 유저 기존 public 스키마 사용


2. 처음 설치 되었을 시 defalut로 생성된 DB(postgres)의 public 스키마 및 유저를  를 그대로 관리자(DDL용) 계정으로 사용 

신규 app용 스키마 생성 , 신규 유저 (APP_USER, DML용)  를 만들어서

스키마 단위로 계정 관리 해야 한다. 기존 public(ddl용) , 신규 app스키마( dml용)


3. 초기 생성된 postgres DB 및 postgres 유저는 사용해선 안된다!!

새로운 신규 DB를 생성 후 

신규 (OWNER_USER, DDL용) 계정을 관리자 계정으로 사용 superuser 권한 부여

신규  (APP_USER, DML용)  를 만들어서 CRUD 등 role(user)통해 필요권한 부여


4. 초기 생성된 postgres DB 및 postgres 유저는 사용해선 안된다!!

신규 DB생성 후  신규 own전용 스키마 및 DDL유저 생성

                         신규 app전용 스키마 및 DML유저 생성

스키마단위로  권한 부여 제어 해서 사용해야한다


쓰면서도 정리가 안되네요,..

초기 설치된 postgres 를 사용해도되는건지..

관리자 계정은 백업을 위한 superuser여야 하는건지..

계정 분리(DDL, DML)를 위해 1,2,3,4 번 중 머가 이상적인지...

모르는게 많아서 ... ㅠ의견 여쭈어 봅니다.


 

이 글에 대한 댓글이 총 1건 있습니다.

일반적인 데이터베이스 사용 권한은 

  • DBA - 데이터베이스 인스턴스 모든 권한 - superuser 
  • 응용프로그램 개발자 group role - DBA가 할당한 그 개발자 이름과 같은 스키마 내에서 모든 권한 - 스키마 내에서 각종 객체를 만들고, 지우고, truncate 할 수 있는 권한
  • 응용프로그램 사용자 group role - 응용프로그램이 DB로 접속하는 계정을 위한 그룹 role - 응용프로그램 개발자가 만든 스키마를 기본 search_path에서 사용하고, 그 스키마 안에 있는 모든 객체를 사용할 수는 있지만, drop, truncate 권한은 없음
  • 모니터링을 위한 group role - 읽기 전용 role

이런식으로 각 스키마, 스키마 안의 객체들에 권한을 부여해 놓고, 

개발자용 login role을 만드는데, 응용프로그램 개발자 group role을 부여합니다. 

응용 프로그램에서 사용하는 db 접속용 계정을 만들면서, 앞에서 지정한 응용프로그램 사용자 group role을 부여해서 사용합니다. 


또한 각종 db 모니터링을 위한 도구를 쓴다면, 그때 그때 그 모니터링 도구에서 사용하는 계정을 만들 때, 앞에서 만든 read only role을 부여합니다. 


여기까지가 개념입니다. 


실작업에서는 


group role 3개를 만들고, 

그 group 소속 login role을 만들어 쓰는데, 이 때 먼저 만들었던 group role 권한을 부여하는 방식으로 사용합니다. 


이 상황에서 응용 프로그램이 A 스키마도, B 스키마도 모두 사용하는 경우라면, 

그 응용 프로그램에서 사용하는 DB login role에 A 스키마용 사용자 group role, B 스키마용 사용자 group role을 동시에 권한을 부여합니다. 

 

김상기(ioseph)님이 2025-07-03 10:03에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10530postgresql 현장에선 어떤 OS를 주로 사용하나요?? [1]
DB신입
2025-07-16
48
10529postgres ddl, dml 계정분리 질문 드려봅니다... [1]
박용수
2025-07-01
123
10527다시 PostgreSQL을 접하며 질문드려요 [1]
김지원
2025-06-23
163
10526한 서버의 여러 인스턴스 구성 [2]
태산
2025-06-12
206
10525대량 insert 작업 시 속도이슈 문의 [1]
마이그
2025-05-20
342
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2025 DSN, All rights reserved.
작업시간: 0.010초, 이곳 서비스는
	PostgreSQL v17.5로 자료를 관리합니다