..

[오류 해결] 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) 설정을 통해 이 문제를 해결할 수 있습니다.

  1. AWS RDS 콘솔 접속 -> 파라미터 그룹 선택
  2. 사용 중인 파라미터 그룹에서 log_bin_trust_function_creators 검색
  3. 값을 0에서 1로 변경 후 저장
  4. (필요 시) DB 인스턴스 재부팅 후 함수 생성을 재시도하면 정상적으로 생성됩니다.

클라우드 DB 환경에서 함수 정의 권한 문제가 발생하면, SUPER 권한을 얻으려 하기보다 파라미터 설정을 통해 신뢰할 수 있는 함수 생성기를 허용하는 것이 정석입니다.