mez*_*ezi 2 mysql stored-procedures permissions
我有一个关于存储过程的用户权限的查询。
如果用户没有在数据库中创建表的权限,但有创建和执行存储过程的权限
如果这些存储过程创建表(作为执行的 SQL 代码的一部分),那么用户在尝试创建表时执行存储过程时会收到错误吗?
这取决于SQL SECURITY
您在创建过程时定义的特征。存储过程的 SQL SECURITY 可以是DEFINER
或INVOKER
。
如果您的用户无法创建表,但存储过程的定义者可以,那么您的用户将能够通过存储过程创建表。
默认情况下,SQL SECURITY
MySQL 中的特征是DEFINER
.
简而言之:
SQL SECURITY DEFINER
:以存储过程创建者权限运行SQL SECURITY INVOKER
:以当前用户权限运行