Repository navigation
Roles and Permissions
범수 edited this page Sep 12, 2026
·
1 revision
DBTower의 변경 흐름은 요청, 승인, 실행을 서로 다른 역할로 분리합니다. 화면은 권한에 맞는 동작만 보여 주고, 서버가 모든 요청을 다시 검사합니다.
| 역할 | 주 사용자 | 주요 권한 |
|---|---|---|
VIEWER |
온콜·팀장 | 관제, 비교, 리포트 조회 |
REQUESTER |
개발자·데이터 요청자 | VIEWER 권한, 워크벤치 조회, 변경 요청·취소 |
APPROVER |
DBA 리드 | REQUESTER 권한, 드라이런, 승인·반려 |
OPERATOR |
DBA 운영자 | REQUESTER 권한, 드라이런, 승인 티켓 실행·되돌리기, 백업·세션 종료 |
ADMIN |
플랫폼 관리자 | 모든 역할의 권한, 인스턴스·계정·보안·감사 관리 |
ADMIN
├── APPROVER -> REQUESTER -> VIEWER
└── OPERATOR -> REQUESTER -> VIEWER
APPROVER와 OPERATOR는 서로를 포함하지 않습니다. 따라서 한 사람이 자기 변경을 승인하고 바로 실행하는 흐름을 기본 역할만으로 만들 수 없습니다.
| 계정 예시 | 보여야 하는 동작 | 없어야 하는 동작 |
|---|---|---|
viewer |
관제, 비교, 읽기 전용 진단 | 워크벤치, 변경 요청 |
requester |
워크벤치 조회, 변경 요청 | 승인, 실행 |
approver |
티켓 조회, 드라이런, 승인·반려 | 실행 |
operator |
티켓 조회, 드라이런, 실행·되돌리기 | 승인·반려 |
admin |
사용자·역할, 인스턴스, 자격증명, 감사 포함 전체 | 없음 |
버튼이 보이지 않는 것만으로 권한 검증이 끝나지는 않습니다. 허용되지 않은 API를 직접 호출해도 403이 반환되어야 합니다. 팀 범위 밖 인스턴스는 존재 자체를 드러내지 않도록 404를 반환할 수 있습니다.
다음 환경변수를 지정하면 앱이 처음 기동될 때 역할별 계정을 만듭니다.
DBTOWER_ADMIN_PASSWORD=...
DBTOWER_VIEWER_PASSWORD=...
DBTOWER_REQUESTER_PASSWORD=...
DBTOWER_APPROVER_PASSWORD=...
DBTOWER_OPERATOR_PASSWORD=...역할을 바꾸면 다음 로그인부터 새 권한이 적용됩니다. 마지막 ADMIN의 역할은 낮출 수 없습니다.
직접 확인하는 순서: 수동 테스트
DBTower 저장소 · 문서 안내 · 이슈