我有一个MySQL的问题,看起来有点像this old question。
在我们的示例中,删除命令会出现问题。用户具有从某个表中删除的权限(比如说test.data),并且可以从这个表中删除记录,如下所示:
DELETE FROM test.data WHERE id = 43
无论用户当前的架构如何,这都有效。但是,如果我将此声明重写为以下内容:
DELETE td FROM test.data td WHERE td.id = 43
它仅适用于测试架构。从任何其他模式我得到一个错误" DELETE命令被拒绝给用户..."。因此,当我尝试在delete语句中使用表别名时,特权系统看起来很混乱。
我需要表别名,因为实际的delete语句涉及多个具有连接条件的表。作为一个解决方法,我重写了使用子查询而不是连接的语句,但我真的想知道我是否遗漏了一些重要的东西,或者这更像是MySQL特权系统中的错误。 / p>