MySQL存储过程用户权限

mez*_*ezi 2 mysql stored-procedures permissions

我有一个关于存储过程的用户权限的查询。

如果用户没有在数据库中创建表的权限,但有创建和执行存储过程的权限

如果这些存储过程创建表(作为执行的 SQL 代码的一部分),那么用户在尝试创建表时执行存储过程时会收到错误吗?

Eri*_* Ly 5

这取决于SQL SECURITY您在创建过程时定义的特征。存储过程的 SQL SECURITY 可以是DEFINERINVOKER

如果您的用户无法创建表,但存储过程的定义者可以,那么您的用户将能够通过存储过程创建表。

默认情况下,SQL SECURITYMySQL 中的特征是DEFINER.

简而言之:

  • 存储过程具有SQL SECURITY DEFINER:以存储过程创建者权限运行
  • 存储过程SQL SECURITY INVOKER:以当前用户权限运行