[MDEV-7033] Inconsistent error codes returned on lack of access for EXPLAIN UPDATE with view Created: 2014-11-06  Updated: 2014-11-06

Status: Open
Project: MariaDB Server
Component/s: OTHER
Affects Version/s: 10.0.14, 10.1.1
Fix Version/s: 10.1

Type: Bug Priority: Minor
Reporter: Elena Stepanova Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: upstream


 Description   

CREATE DATABASE privtest_db;
 
CREATE TABLE privtest_db.t1 (a INT);
CREATE TABLE privtest_db.t2 (a INT);
INSERT INTO privtest_db.t2 VALUES (1), (2), (3);
CREATE VIEW privtest_db.v1 (a) AS SELECT a FROM privtest_db.t1;
 
GRANT ALL    ON privtest_db.t1 TO 'privtest'@'localhost';
GRANT ALL    ON privtest_db.t2 TO 'privtest'@'localhost';
GRANT SELECT ON privtest_db.v1 TO 'privtest'@'localhost';

connect(con1,localhost,privtest,,);
USE privtest_db;
 
# Single-table UPDATE, multi-table DELETE, multi-table UPDATE all return
# the same ER_TABLEACCESS_DENIED_ERROR
# because there is no UPDATE/DELETE grants on v1
 
--error ER_TABLEACCESS_DENIED_ERROR
UPDATE v1 SET v1.a = v1.a + 1 WHERE v1.a = 2;
--error ER_TABLEACCESS_DENIED_ERROR
DELETE v1 FROM v1, t2 WHERE v1.a = t2.a;
--error ER_TABLEACCESS_DENIED_ERROR
UPDATE v1, t2 SET v1.a = v1.a + 1 WHERE v1.a = t2.a;
 
# But for EXPLAIN, it's different:
# Single-table UPDATE and multi-table DELETE both return ER_TABLEACCESS_DENIED_ERROR
# while the multi-table UPDATE returns ER_VIEW_NO_EXPLAIN
 
--error ER_TABLEACCESS_DENIED_ERROR
EXPLAIN UPDATE v1 SET v1.a = v1.a + 1 WHERE v1.a = 2;
--error ER_TABLEACCESS_DENIED_ERROR
EXPLAIN DELETE v1 FROM v1, t2 WHERE v1.a = t2.a;
 
--error ER_TABLEACCESS_DENIED_ERROR
EXPLAIN UPDATE v1, t2 SET v1.a = v1.a + 1 WHERE v1.a = t2.a;


Generated at Thu Feb 08 07:16:27 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.