은 내가 [email protected]
로 MySQL의 모든 절차를 서면으로 작성했습니다 : 다른 서버에 배포 할 때저장 프로 시저를 만들 때`definer`가 필요합니까?
CREATE DEFINER=`root`@`localhost` PROCEDURE `p_add_user`(...)
문제는, 내가 현재 사용자와 root
을 교체하고 짜증나는 현재 IP와 localhost
을 교체해야합니다.
데이터베이스와 프로 시저를 사용하려는 사람이 각 프로 시저의 정의자를 수정할 필요가 없도록 프로 시저를 작성할 수있는 방법이 있습니까? here
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
그래서 MySQL의 문서에 명시된 바와 같이
이
"DEFINER 절은 트리거 활성화 시간에 액세스 권한을 확인할 때 사용할 보안 컨텍스트를 결정합니다. 자세한 내용은이 섹션 뒷부분에 나와 있습니다." 그래서 절차가 권한이있는 사용자에 의해서만 사용된다는 것을 알기 때문에 나는 전체 정의자를 완전히 제거 할 수 있습니까? – Xorty
네, 그렇 겠지요. 나는 사용자의 권한을 정의 할 때 "실행 절차"권한이 부여/거부 될 수 있다고 생각합니다. (확실하지는 않습니다 ...) – maid450
좋았어, 나중에 다시 시도해보고 작동하면 다시 응답 할 것입니다. 고맙습니다 – Xorty