24.4.2.6 사용자 정의 함수의 보안 예방 조치
MySQL에서 사용자 정의 함수의 오용을 방지하기위한 다양한 대책이 강구되어 있습니다.
UDF 오브젝트 파일은 임의의 디렉토리에 배치 할 수 없습니다. 이들은 서버 플러그인 디렉토리에 배치해야합니다. 이 디렉토리는 plugin_dir
시스템 변수의 값을 얻을 수 있습니다.
CREATE FUNCTION
또는 DROP FUNCTION
을 사용하려면 mysql
데이터베이스 INSERT
권한 또는 DELETE
권한을 각각 가지고 있어야합니다. 이것이 필요한 것은 이러한 문이 mysql.func
테이블에 행 추가 및 삭제를 할 수 있습니다.
UDF는 기본 xxx()
함수에 대응하는 xxx
기호 외에 적어도 하나의 심볼이 정의하십시오. 이러한 보조 기호는 xxx_init()
, xxx_deinit()
, xxx_reset()
, xxx_clear()
및 xxx_add()
함수에 대응합니다. mysqld는 xxx
심볼 만있는 UDF를로드 할 수 있는지 여부를 제어하는 --allow-suspicious-udfs
옵션도 지원되고 있습니다. 기본적으로이 옵션은 꺼져 있고, 정당한 UDF가 포함되어있는 공유 객체 파일 이외에서 함수가로드되는 것을 막아줍니다. xxx
심볼 만 포함되어 있고, 보조 심볼을 포함하도록 다시 컴파일 할 수없는 오래된 UDF가있는 경우 --allow-suspicious-udfs
옵션을 지정해야하는 경우가 있습니다. 그렇지 않으면이 기능을 사용하지 않도록하십시오.