>데이터 베이스 >MySQL 튜토리얼 >phpMyAdmin에서 함수를 생성할 때 \'오류: 액세스가 거부되었습니다. 이 작업을 위해서는 SUPER 권한이 필요합니다\'라는 메시지가 나타나는 이유는 무엇입니까?

phpMyAdmin에서 함수를 생성할 때 \'오류: 액세스가 거부되었습니다. 이 작업을 위해서는 SUPER 권한이 필요합니다\'라는 메시지가 나타나는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-31 17:13:301032검색

Why Am I Getting

오류: 액세스 거부: phpMyAdmin에서 함수 생성

phpMyAdmin에서 함수를 생성하기 위해 SQL 쿼리를 실행할 때 사용자에게 "오류: 액세스가 거부되었습니다. 이 작업을 수행하려면 SUPER 권한이 필요합니다." 메시지가 나타납니다. 이 오류는 권한 요구 사항으로 인해 발생합니다.

문제 식별

두 가지 주요 문제로 인해 이 오류가 발생할 수 있습니다.

  1. 누락 CREATE ROUTINE 권한: MySQL 5.0.3 이상에서는 CREATE PROCEDURE 및 CREATE FUNCTION 쿼리를 실행하려면 CREATE ROUTINE 권한이 필요합니다.
  2. DEFINER 제한: DEFINER 속성은 저장 프로시저나 함수. DEFINER가 제한된 사용자로 설정된 경우 호출자에게 객체를 생성할 수 있는 SUPER 권한이 있어야 합니다.

해결 방법

DEFINER 속성 제거 :

SUPER 권한이 필요하지 않도록 하려면 SQL 쿼리에서 DEFINER 속성을 제거하세요. 이렇게 하면 현재 사용자에게 함수의 소유권이 부여됩니다.

<code class="sql">CREATE FUNCTION `f_calc_gst`(p_ht decimal(15,3), p_province varchar(2)) RETURNS varchar(255) CHARSET utf8
...</code>

phpMyAdmin에서 구분 기호 필드 설정:

수정된 쿼리를 실행하기 전에 구분 기호 필드가 다음과 같은지 확인하세요. phpMyAdmin의 SQL 텍스트 상자에서 올바르게 설정하십시오.

추가 참고 사항:

  • 바이너리 로깅에는 SUPER 권한이 필요할 수 있습니다.
  • 한 번 기능이 생성되면 사용자는 다른 사용자나 역할에 특정 권한을 부여할 수 있습니다.

위 내용은 phpMyAdmin에서 함수를 생성할 때 '오류: 액세스가 거부되었습니다. 이 작업을 위해서는 SUPER 권한이 필요합니다'라는 메시지가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.