Вопросы к Поиску с Алисой
Разница между SQL SECURITY DEFINER и SQL SECURITY INVOKER заключается в том, с какими правами выполняется выполнение сохранённых процедур (процедур и функций) и представлений. dev.mysql.com www.mysqltutorial.org
SQL SECURITY DEFINER (безопасность определившего) означает, что сохранённый объект выполняется с правами пользователя, указанного атрибутом DEFINER. dev.mysql.com www.mysqltutorial.org Эти права могут быть полностью отличными от прав вызывающего пользователя. dev.mysql.com Вызывающий пользователь должен иметь соответствующие привилегии для обращения к объекту (например, EXECUTE для вызова сохранённой процедуры или SELECT для выбора из представления), но во время выполнения объекта привилегии вызывающего пользователя игнорируются, важны только привилегии учётной записи DEFINER. dev.mysql.com
SQL SECURITY INVOKER (безопасность вызывающего) означает, что сохранённая процедура или представление выполняются с правами вызывающего пользователя. dev.mysql.com postgrespro.ru При этом атрибут DEFINER не влияет на выполнение объекта. dev.mysql.com www.mysqltutorial.org
Таким образом, при использовании SQL SECURITY DEFINER объект ограничен в операциях, которые он может выполнять, а при использовании SQL SECURITY INVOKER — доступны только те операции, для которых у вызывающего пользователя есть привилегии. dev.mysql.com