itsource

이진 로깅 옵션이 켜져 있을 때 SUPER 권한이 해제되는 이유는 무엇입니까?

mycopycode 2022. 9. 27. 23:53
반응형

이진 로깅 옵션이 켜져 있을 때 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)

기능 작성자가 다음 기능을 사용할 필요가 없는 경우SUPERprivilege(예를 들어, 를 가진 모든 사용자가CREATE ROUTINE숙련된 애플리케이션 개발자가 시스템에 대한 권한)을 글로벌하게 설정합니다.log_bin_trust_function_creatorssystem 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

  1. systemctl stop mysqld
  2. log_bin_trust_function_creators = 1로로 합니다.my.cnf아래/etc
  3. systemctl start mysqld

언급URL : https://stackoverflow.com/questions/56389698/why-super-privileges-are-disabled-when-binary-logging-option-is-on

반응형