27.2.2 Хранящиеся процедуры и привилегии MySQL
Система предоставления привилегий MySQL учитывает хранящиеся процедуры следующим образом:
Для создания хранящихся процедур требуется привилегия
CREATE ROUTINE.Для изменения или удаления хранящихся процедур требуется привилегия
ALTER ROUTINE. Эта привилегия автоматически предоставляется создателю процедуры при необходимости и снимается с создателя при удалении процедуры.Для выполнения хранящихся процедур требуется привилегия
EXECUTE. Однако эта привилегия автоматически предоставляется создателю процедуры при необходимости (и снимается с создателя при удалении процедуры). Кроме того, по умолчанию характерной особенностью для процедуры является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.