트리거를 생성하려고 하는데
Error Code: 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)
1419 에러가 발생했다🥲
찾아보니 SUPER 권한이 없는 유저에게 트리거를 생성할 권한이 없어서 발생하는 오류였다.
해결 방법. log_bin_trust_function_creators 옵션 상태 변경하기
루트 계정으로 로그인하고
현재 'log_bin_trust_function_creators'가 ON 인지 OFF 인지 확인해본다.
show global variables like 'log_bin_trust_function_creators';
OFF라면 아래 코드들 중 하나의 명령어를 실행하면 ON으로 변경할 수 있다.
set global log_bin_trust_function_creators=1;
set global log_bin_trust_function_creators=ON;
❗트리거 생성 성공 후, 안정성을 위해 다시 OFF로 변경해 두었다.
❓ log_bin_trust_function_creators
log_bin_trust_function_creators 옵션은 MySQL이 function, trigger 생성에 대한 제약을 강제할 수 있는 기능이다.
해당 옵션의 기본값은 OFF이며, OFF상태의 경우 권한이 있더라도 Trigger, Function을 생성할 수 없다!
결론적으로 해당 옵션이 OFF 상태일 경우, 루트권한이 없는 사용자가가 생성한 function을 일반 사용가 실행할 수 없게된다.
[출처]
'MySQL' 카테고리의 다른 글
[MySQL] ROUND, CEILING, FLOOR 함수 (0) | 2024.07.29 |
---|---|
[MySQL] 재귀쿼리 WITH RECURSIVE (0) | 2024.07.06 |