..
[오류 해결] MySQL/MariaDB: You do not have the SUPER privilege
문제 발생
MariaDB(AWS Cloud RDS) 환경에서 시퀀스(Sequence) 관리를 위해 사용하던 함수(Function)를 추가하려고 했으나, 다음과 같은 권한 오류가 발생했습니다.
[HY000][1419] You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
원인 분석
AWS RDS와 같은 Managed DB 서비스에서는 보안상의 이유로 일반 사용자에게 SUPER 권한을 부여하지 않습니다. 또한 바이너리 로깅(Binary Logging)이 활성화된 경우, 함수 생성 과정에서 발생할 수 있는 보안 리스크를 방지하기 위해 log_bin_trust_function_creators 설정이 꺼져 있으면 함수 생성이 차단됩니다.
해결 방법
AWS RDS 콘솔의 파라미터 그룹(Parameter Group) 설정을 통해 이 문제를 해결할 수 있습니다.
- AWS RDS 콘솔 접속 -> 파라미터 그룹 선택
- 사용 중인 파라미터 그룹에서
log_bin_trust_function_creators검색 - 값을
0에서1로 변경 후 저장 - (필요 시) DB 인스턴스 재부팅 후 함수 생성을 재시도하면 정상적으로 생성됩니다.
클라우드 DB 환경에서 함수 정의 권한 문제가 발생하면, SUPER 권한을 얻으려 하기보다 파라미터 설정을 통해 신뢰할 수 있는 함수 생성기를 허용하는 것이 정석입니다.