是否可以在MySql中封装表

时间:2012-09-11 16:19:18

标签: mysql permissions grant

我是数据库新手。我希望数据库中的更新只能通过存储过程进行。最终用户拥有GRANT UPDATE,但拥有GRANT EXECUTE ON PROCEDURE

我尝试了这种方式,但发现最终用户需要获得UPDATE权限。有没有其他方法可以实现这一目标?

1 个答案:

答案 0 :(得分:2)

根据the doc

  

对p1具有EXECUTE特权的任何用户都可以使用CALL语句调用它。但是,当p1执行时,它会在DEFINER安全上下文中执行,因此以“admin”@“localhost”(DEFINER属性中指定的帐户)的权限执行。此帐户必须具有p1的EXECUTE特权以及表t1的UPDATE特权。否则,程序失败。

因此,您应该能够将DEFINER设置为授权用户帐户,并且只允许最终用户执行该过程。