为什么此INSERT语句需要SELECT授予?

时间:2019-02-01 19:58:12

标签: mysql permissions amazon-rds-aurora

我大约在运行以下SQL语句:

return WebviewScaffold(
    appBar: _ifHideAppBar ? null : AppBar(
        ...
    ),
    ...
);

使用这些参数,尽管我掩盖了这些值:

INSERT INTO a_table
    (file_hash, p, c)
VALUES
    (%(hash)s, %(p)s, %(c)s)
ON DUPLICATE KEY UPDATE
    p = %(p)s,
    c = %(c)s
;

MySQL给我以下错误:

[parameters: {'hash': -, 'p': -, 'c': -}]

为什么?

(手册中似乎最能解释这一点的是

  

读取列值的其他语句也需要SELECT command denied to user 'our_user'@'10.1.1.2' for column 'p' in table 'a_table'" 特权。例如,SELECT语句中col_name = expr分配右侧引用的列需要SELECT

但是,我们在声明中没有引用分配的RHS中的该列(UPDATE)。我们不会在这里看到任何地方读取该值。)

架构:

p

(编辑:在生活环境之外复制此文件也遇到了一些困难;这是在AWS MySQL Aurora实例上发生的。)

0 个答案:

没有答案