27.2.2 Хранимые процедуры и привилегии MySQL
Система разрешений MySQL учитывает хранимые процедуры следующим образом:
Для создания хранимых процедур требуется привилегия
CREATE ROUTINE.Для изменения или удаления хранимых процедур требуется привилегия
ALTER ROUTINE. Эта привилегия автоматически предоставляется создателю процедуры при необходимости и отменяется при удалении процедуры.Для выполнения хранимых процедур необходима привилегия
EXECUTE. Однако эта привилегия автоматически предоставляется создателю процедуры при необходимости (и отменяется при удалении процедуры). Также по умолчанию свойствоSQL SECURITYдля процедуры установлено в значениеDEFINER, что позволяет пользователям, имеющим доступ к базе данных, с которой связана процедура, выполнять эту процедуру.Если значение системной переменной
automatic_sp_privilegesравно 0, привилегииEXECUTEиALTER ROUTINEне предоставляются и не отменяются автоматически для создателя процедуры.Создателем процедуры является учётная запись, используемая для выполнения соответствующего оператора
CREATE. Это может отличаться от учётной записи, указанной в качествеDEFINERв определении процедуры.-
Учётная запись, указанная как учётная запись
DEFINERпроцедуры, может видеть все свойства процедуры, включая её определение. Таким образом, учетная запись имеет полный доступ к выводу процедуры, генерируемому:Из содержимого таблицы Информационной схемы
ROUTINES.С помощью операторов
SHOW CREATE FUNCTIONиSHOW CREATE PROCEDURE.С помощью операторов
SHOW FUNCTION CODEиSHOW PROCEDURE CODE.С помощью операторов
SHOW FUNCTION STATUSиSHOW PROCEDURE STATUS.
-
Для учётной записи, отличной от учётной записи, указанной как учётная запись
DEFINERпроцедуры, доступ к свойствам процедуры зависит от предоставленных привилегий:При наличии привилегии
SHOW_ROUTINEили глобальной привилегииSELECT, учётная запись может видеть все свойства процедуры, включая её определение.При наличии привилегии
CREATE ROUTINE,ALTER ROUTINEилиEXECUTE, предоставленной на уровне, включающем процедуру, учётная запись может видеть все свойства процедуры, кроме её определения.
© 2025 Oracle
Licensed under the GPLv2 License.