Spec-Zone.ru › MySQL 9.2

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.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/stored-routines-privileges.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API