Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 错误代码:1143 SELECT命令在我尝试运行更新查询时被拒绝,即使我同时拥有更新和选择权限_Mysql - Fatal编程技术网

Mysql 错误代码:1143 SELECT命令在我尝试运行更新查询时被拒绝,即使我同时拥有更新和选择权限

Mysql 错误代码:1143 SELECT命令在我尝试运行更新查询时被拒绝,即使我同时拥有更新和选择权限,mysql,Mysql,我得到错误代码:1143。每当我尝试使用条件语句运行更新查询时,SELECT命令拒绝给用户 我对数据库中的所有表具有选择权限,并对某些表中的某些字段具有更新权限 将'Base!'上的SELECT授予'php_角色' Base`.`cart`上的更新(`amount`)授予`php_角色` 我能够运行以下SELECT查询而不出现任何错误: 从'cart'中选择*,其中'subscription\u id`=0 但当我尝试运行更新查询时,会出现以下错误: UPDATE`cart`SET`amount

我得到错误代码:1143。每当我尝试使用条件语句运行更新查询时,SELECT命令拒绝给用户

我对数据库中的所有表具有选择权限,并对某些表中的某些字段具有更新权限

将'Base!'上的SELECT授予'php_角色'

Base`.`cart`上的更新(`amount`)授予`php_角色`

我能够运行以下SELECT查询而不出现任何错误:

从'cart'中选择*,其中'subscription\u id`=0

但当我尝试运行更新查询时,会出现以下错误:

UPDATE`cart`SET`amount`=0,其中`subscription\u id`=0

即使我授予自己对整个表的更新权限,仍然会出现错误。 我发现唯一可以修复它的方法是授予整个数据库的更新权限

最小可重复示例:

作为Root用户,创建数据库、表和用户

CREATE DATABASE test_db;
USE test_db;

CREATE TABLE test(
    p_id INT,
    val INT,
    
    PRIMARY KEY(p_id)
);

CREATE ROLE test_role;
CREATE USER test_user IDENTIFIED BY 'password';

GRANT SELECT ON test_db.* TO test_role;
GRANT INSERT ON test_db.* TO test_role;
GRANT UPDATE (val) ON test_db.test TO test_role;

GRANT test_role TO test_user;
SET DEFAULT ROLE test_role TO test_user;
作为新创建的用户,登录并尝试运行更新查询

USE test_db;
UPDATE test SET val = 0 WHERE p_id = 0;
更新查询导致错误,而以下查询工作正常:

从测试中选择*