mysql用户可以看到存储过程吗?

时间:2011-12-09 21:55:20

标签: mysql security stored-procedures privileges

例如: 非超级用户已被授予对插入表“a”的过程的执行。该用户将看到表“a”所在的数据库中有“show databases”,但是无法看到带有“show tables”的表“a”。但是同一个用户可以通过“显示程序状态”查看基本程序信息。

这是用于审核的,我希望审核过程尽可能模糊。如果授予用户执行权限,则该用户是否必须能够查看该过程?他们必须能够看到程序涉及的数据库吗?

1 个答案:

答案 0 :(得分:2)

如果您是该过程的所有者,或者您有权访问mysql.proc表,则可以看到所述过程的定义here

因此,您将创建过程为super并设置DEFINER CURRENT_USER(因此过程以super形式执行)。然后确保super可以访问该表,但没有其他人可以访问。这应该保护表和源,但是可以调用该过程。

并且它不一定是超级的,可以是任何有权访问该表的用户。