从定义者帐户执行mysql存储过程,没有执行权限

时间:2015-07-24 08:05:04

标签: mysql stored-procedures privileges execute

我在mariaDB数据库中创建了一个存储过程。定义者是受限制的用户,没有EXECUTE特权(在db,table和procedure级别)。

但我可以通过此帐户成功执行此程序。

这是一种正常的行为,即使它没有EXECUTE特权,定义者也可以执行该过程吗?

1 个答案:

答案 0 :(得分:2)

这是正常行为。来自manual

执行存储例程需要EXECUTE特权。但是,如果需要,该特权将自动授予例程的创建者(并在例程被删除时从创建者中删除)。此外,例程的默认SQL SECURITY特性是DEFINER,它允许有权访问与例程关联的数据库的用户执行例程。