데브포일 홈
DEV MODE - 실서버 영향 없음 📦 배포 관리
역할 기반 접근 제어(RBAC)
+400 XP
LEVEL 84 QUEST

역할 기반 접근 제어(RBAC)

역할 기반 접근 제어(RBAC) — DevFoil 바이브코딩 Stage 18, Lv.84

RBAC(역할 기반 접근 제어)란?
사용자가 아닌 "역할"에 권한을 부여하는 시스템
RBAC(Role-Based Access Control)은 사용자 개개인에게 권한을 주는 대신, "역할(Role)"이라는 그룹에 권한을 부여하고, 사용자에게 역할을 할당하는 방식입니다.

회사에서 신입사원이 들어오면 일일이 "이 폴더 접근 가능, 저 시스템 접근 불가"를 설정하지 않습니다. 대신 "마케팅팀 인턴"이라는 역할을 주면, 해당 역할에 맞는 모든 권한이 자동으로 적용됩니다.

RBAC가 필요한 이유:
  • 사용자가 100명이면 100번 권한 설정 vs 역할 3개만 관리
  • 퇴사자 처리: 역할만 제거하면 모든 권한이 즉시 해제
  • 감사(Audit): "누가 무엇을 할 수 있는지" 한눈에 파악 가능
  • 엔터프라이즈 고객의 필수 요구사항
역할과 권한 테이블 설계
데이터베이스 스키마 설계
RBAC 시스템은 최소 4개의 핵심 테이블이 필요합니다. 사용자(User) - 역할(Role) - 권한(Permission)의 관계를 다대다(N:M)로 연결합니다.
-- 1. 역할 테이블 CREATE TABLE roles ( id BIGINT PRIMARY KEY AUTO_INCREMENT, tenant_id BIGINT NOT NULL, name VARCHAR(50) NOT NULL, -- 'admin', 'editor', 'viewer' display_name VARCHAR(100), -- '관리자', '편집자', '뷰어' description TEXT, is_default BOOLEAN DEFAULT false, -- 새 멤버 기본 역할 created_at TIMESTAMP DEFAULT NOW(), UNIQUE(tenant_id, name) ); -- 2. 권한 테이블 CREATE TABLE permissions ( id BIGINT PRIMARY KEY AUTO_INCREMENT, resource VARCHAR(50) NOT NULL, -- 'project', 'member', 'billing' action VARCHAR(50) NOT NULL, -- 'create', 'read', 'update', 'delete' description VARCHAR(200), UNIQUE(resource, action) ); -- 3. 역할-권한 매핑 (N:M) CREATE TABLE role_permissions ( role_id BIGINT REFERENCES roles(id), permission_id BIGINT REFERENCES permissions(id), PRIMARY KEY (role_id, permission_id) ); -- 4. 사용자-역할 매핑 (N:M) CREATE TABLE user_roles ( user_id BIGINT REFERENCES users(id), role_id BIGINT REFERENCES roles(id), tenant_id BIGINT NOT NULL, assigned_at TIMESTAMP DEFAULT NOW(), PRIMARY KEY (user_id, role_id, tenant_id) );
🔒
여기까지는 미리보기입니다
역할 기반 접근 제어(RBAC)
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.
Google로 3초 만에 시작 →🧵 Threads로 시작무료 공개 강의 둘러보기 (Lv.1~3)