2015-07-24 3 views
2

Я создал хранимую процедуру в моей базе данных mariaDB. Определитель - это ограниченный пользователь, у которого нет привилегии EXECUTE (на уровне db, table и procedure).Выполнение хранимой процедуры mysql из учетной записи определений без прав выполнения

Но я могу успешно выполнить эту процедуру из этой учетной записи.

Это обычное поведение, которое определитель может выполнить процедуру, даже если у нее нет привилегии EXECUTE?

ответ

2

Это нормальное поведение. От manual:

Для выполнения хранимых процедур требуется привилегия EXECUTE. Однако эта привилегия предоставляется автоматически создателю подпрограммы, если это необходимо (и удаляется из создателя при отбрасывании этой процедуры). Кроме того, стандартная функция SQL SECURITY для подпрограммы - DEFINER, которая позволяет пользователям, имеющим доступ к базе данных, с которой связана процедура, для выполнения процедуры.
+0

Спасибо, я просмотрел документацию, но не нашел этого. Где это? – galinette

+0

@galinette, соответствующий раздел руководства уже связан в ответе;) – vhu