例如: 非超级用户已被授予对插入表“a”的过程的执行。该用户将看到表“a”所在的数据库中有“show databases”,但是无法看到带有“show tables”的表“a”。但是同一个用户可以通过“显示程序状态”查看基本程序信息。
这是用于审核的,我希望审核过程尽可能模糊。如果授予用户执行权限,则该用户是否必须能够查看该过程?他们必须能够看到程序涉及的数据库吗?
答案 0 :(得分:2)
如果您是该过程的所有者,或者您有权访问mysql.proc表,则可以看到所述过程的定义here。
因此,您将创建过程为super并设置DEFINER CURRENT_USER(因此过程以super形式执行)。然后确保super可以访问该表,但没有其他人可以访问。这应该保护表和源,但是可以调用该过程。
并且它不一定是超级的,可以是任何有权访问该表的用户。