반응형
Ant_U
DBA 개미
Ant_U
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • AWS (3)
    • C# (1)
    • SQL (236)
      • MYSQL (186)
      • MSSQL (50)
    • 자격증 (20)
      • SQLD (12)
      • SQLP (8)

인기 글

최근 글

250x250
hELLO · Designed By 정상우.
Ant_U

DBA 개미

[MySQL] SET ROLE 문 완벽 이해: 동적 권한 제어의 핵심 기능
SQL/MYSQL

[MySQL] SET ROLE 문 완벽 이해: 동적 권한 제어의 핵심 기능

2025. 6. 14. 00:00
728x90
반응형

 

왜 SET ROLE을 이해해야 할까?

MySQL 8.0부터 지원되는 역할(Role) 기능은 사용자 권한 관리를 보다 체계적이고 유연하게 만듭니다. 이 중 SET ROLE 문은 로그인 이후 동적으로 사용자 권한을 전환할 수 있는 핵심 기능입니다. 실무에서는 최소 권한 원칙(Principle of Least Privilege)을 적용할 때 매우 유용하게 쓰입니다.


1. SET ROLE이란?

SET ROLE 문은 현재 세션에서 활성화할 역할을 지정하는 명령어입니다. MySQL 사용자는 여러 역할을 가질 수 있으며, SET ROLE을 통해 어떤 권한을 사용할지를 실시간으로 조정할 수 있습니다.

기본 구문:

SET ROLE 'developer';

이 명령은 현재 세션에서 developer 역할의 권한만 활성화합니다. 이를 통해 필요할 때만 민감한 권한을 사용할 수 있습니다.


2. 다양한 사용 방식 예제

  • 하나의 역할만 활성화하기:
SET ROLE 'report_reader';
  • 여러 역할을 동시에 활성화하기:
SET ROLE 'report_reader', 'developer';
  • 모든 권한 제거 (NO ROLE):
SET ROLE NONE;
  • 모든 역할 활성화:
SET ROLE ALL;
  • 기본 역할로 되돌리기:
SET ROLE DEFAULT;

이는 SET DEFAULT ROLE로 지정된 역할 상태로 복원합니다.


3. 권한 및 제약사항

  • 사용자는 자신에게 부여된 역할만 활성화할 수 있습니다.
  • SET ROLE은 세션 단위로만 적용되며, 서버를 다시 시작하거나 세션을 종료하면 초기화됩니다.
  • SHOW GRANTS를 사용하면 현재 세션의 권한 상태를 확인할 수 있습니다.

4. 실무에서의 활용 시나리오

  • 보안 강화: 모든 사용자가 로그인 시 최소 권한만 활성화하고, 필요한 작업이 있을 때만 권한을 수동으로 활성화하도록 설정.
  • 운영/개발 분리: developer와 admin 역할을 분리하고, 운영 작업이 필요할 때만 SET ROLE 'admin'을 통해 권한을 전환.
  • 감사 및 감사 로그 추적: 어떤 역할이 활성화되었는지를 쿼리 로그 등을 통해 추적하여 보안 감사를 수행.

결론 및 실무 팁

MySQL의 SET ROLE 문은 RBAC 환경에서 동적 권한 제어를 가능하게 해주는 유연한 도구입니다. 적절하게 사용하면 보안을 강화하면서도 업무 효율을 높일 수 있습니다.

실무 팁:

  1. 최소 권한을 기본으로, 필요 시 수동으로 권한을 활성화하는 패턴을 권장합니다.
  2. 역할 설정과 변경은 로깅 시스템을 통해 추적할 수 있도록 구성하세요.
  3. 자주 쓰는 역할 조합은 스크립트로 자동화하여 편의성을 높이세요.

공식 문서 링크

  • MySQL SET ROLE 공식 문서
728x90
반응형

'SQL > MYSQL' 카테고리의 다른 글

[MySQL] 개발자를 위한 SET RESOURCE GROUP 문 사용법 및 CPU 관리 방식  (0) 2025.06.16
[MySQL] DROP RESOURCE GROUP 문: 불필요한 리소스 그룹 안전하게 삭제하기  (0) 2025.06.15
[MySQL] CREATE RESOURCE GROUP 문 가이드: 리소스 최적화를 위한 시작점  (0) 2025.06.15
[MySQL] ALTER RESOURCE GROUP 문 완벽 가이드: 리소스 제어의 핵심 기능  (1) 2025.06.14
[MySQL] SET PASSWORD 문 완벽 가이드: 안전한 비밀번호 관리를 위한 필수 지식  (3) 2025.06.13
[MySQL] SET DEFAULT ROLE 문 완전 정복: 사용자 권한 관리의 핵심  (0) 2025.06.13
[MySQL] REVOKE 사용 방법 및 예시  (0) 2025.03.31
[MySQL] Index Condition Pushdown 사용 방법 및 예시  (0) 2025.03.19
    'SQL/MYSQL' 카테고리의 다른 글
    • [MySQL] CREATE RESOURCE GROUP 문 가이드: 리소스 최적화를 위한 시작점
    • [MySQL] ALTER RESOURCE GROUP 문 완벽 가이드: 리소스 제어의 핵심 기능
    • [MySQL] SET PASSWORD 문 완벽 가이드: 안전한 비밀번호 관리를 위한 필수 지식
    • [MySQL] SET DEFAULT ROLE 문 완전 정복: 사용자 권한 관리의 핵심
    Ant_U
    Ant_U

    티스토리툴바