Я могу получить список процедур, выполнив следующее:
show procedure status where Db='test1';
И обычно мы можем получить синтаксис CREATE
, выполнив следующее:
show create procedure sampleProcedure1;
Но CREATE Procedure
показывает пустой. Есть ли какое-либо обходное решение для получения исходного CREATE
процедуры?
Из документации MySQL:
Чтобы использовать любой оператор, вы должны быть именем пользователя в подпрограмме
DEFINER
или иметь доступSELECT
к таблицеmysql.proc
. Если у вас нет привилегий для самой процедуры, значение, отображаемое для поляCreate Procedure
илиCreate Function
будетNULL
.
Таким образом, решение заключается в предоставлении пользователю SELECT
доступа к mysql.proc
:
GRANT SELECT on mysql.proc TO 'user'@'hostname'
Замените hostname
user
и hostname
соответствующими значениями.