이진 로깅 옵션이 켜져 있을 때 SUPER 권한이 해제되는 이유는 무엇입니까?
다음 오류가 발생했을 때 SUPER 권한을 활성화하는 방법에 대해 인터넷을 통해 많은 권장 사항이 있습니다.
"ERROR 1419 (HY000):SUPER 권한이 없으며 이진 로깅이 활성화되어 있습니다."
그러나 바이너리 로깅 옵션이 켜져 있을 때 MySQL이 이러한 권한을 비활성화하는 이유를 찾을 수 없었습니다.
DB를 수정하는 트리거 등을 사용하는 경우 복제에 문제가 있습니까?안전한지, 그렇지 않은 경우 슈퍼 권한을 반환할 경우 어떤 문제에 부딪힐 수 있습니까?나는 이 제한의 이면에 어떤 근거가 있어야 한다고 생각하지만 어느 것이 어떤 것인지 이해할 수 없다.
이것에 대한 답을 아는 사람?
감사합니다.
여기 문서에서 찾은 몇 가지 자세한 설명이 있습니다.이게 이해하는데 도움이 됐으면 좋겠네요.
그
CREATE FUNCTION
그리고.INSERT
스테이트먼트는 바이너리 로그에 기록되므로 슬레이브가 실행합니다.슬레이브 SQL 스레드는 모든 권한을 가지므로 위험한 문이 실행됩니다.따라서 함수 호출은 마스터와 슬레이브에 다른 영향을 미치며 복제에 안전하지 않습니다.바이너리 로깅이 네이블로 되어 있는 서버에 대해 이 위험을 방지하려면 저장된 함수 작성자는 다음 조건을 충족해야 합니다.
SUPER
통상적인 특권 외에CREATE ROUTINE
필요한 권한을 부여합니다.마찬가지로,ALTER FUNCTION
, 를 가지고 있어야 합니다.SUPER
에 가세해 특권ALTER ROUTINE
특권미포함SUPER privilege
에러가 발생합니다.ERROR 1419 (HY000): 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)
기능 작성자가 다음 기능을 사용할 필요가 없는 경우
SUPER
privilege(예를 들어, 를 가진 모든 사용자가CREATE ROUTINE
숙련된 애플리케이션 개발자가 시스템에 대한 권한)을 글로벌하게 설정합니다.log_bin_trust_function_creators
system var.또한 이 변수를 설정할 수도 있습니다.--log-bin-trust-function-creators=1
옵션을 선택합니다.바이너리 로깅이 활성화되지 않은 경우log_bin_trust_function_creators
해당되지 않습니다.SUPER
앞서 설명한 바와 같이 다음 조건이 충족되지 않는 한 함수 생성에는 필요하지 않습니다.DEFINER
함수 정의의 값에는 이 값이 필요합니다.
출처 : https://dev.mysql.com/doc/refman/8.0/en/stored-programs-logging.html
안녕하세요, 해결책을 찾기 위해 오신 분이 계시다면Linux
systemctl stop mysqld
log_bin_trust_function_creators = 1
로로 합니다.my.cnf
아래/etc
systemctl start mysqld
언급URL : https://stackoverflow.com/questions/56389698/why-super-privileges-are-disabled-when-binary-logging-option-is-on
'itsource' 카테고리의 다른 글
대형 판다 데이터 프레임에 모든 기둥의 이름을 표시하는 방법은 무엇입니까? (0) | 2022.09.27 |
---|---|
Java에서 인쇄할 수 없는 Unicode 문자를 대체하려면 어떻게 해야 합니까? (0) | 2022.09.27 |
이클립스 프로젝트에서 javascript 검증을 제거하려면 어떻게 해야 합니까? (0) | 2022.09.27 |
iloc과 loc의 차이점은 무엇입니까? (0) | 2022.09.27 |
이 C 프로그램은 두 가지 주요 기능으로 어떻게 컴파일 및 실행됩니까? (0) | 2022.09.27 |