Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/MariaDB/mysql-test/main/   (MariaDB Server Version 8.1-8.4©)  Datei vom 1.9.2026 mit Größe 1 kB image not shown  

Quelle  deny_metadata.test  Sprache: unbekannt

 
Spracherkennung für: .test vermutete Sprache: SQL {SQL[125] Lisp[58] Masm[58]} [Methode: maximale Elemente, drei Dimensionen]

--source include/not_embedded.inc

--echo #
--echo # DENY metadata behavior
--echo #

--echo #
--echo # Direct DENY should affect SHOW COLUMNS
--echo #
CREATE TABLE t1 (id INT);
CREATE TABLE t2 (c1 INT);
CREATE USER u@localhost;
CREATE ROLE r;
GRANT SELECT ON test.t1 TO r;
GRANT SELECT ON test.t2 TO r;
DENY SELECT ON test.t1 TO r;
GRANT r TO u@localhost;

connect (con1, localhost, u,,);
SET ROLE r;
--error ER_TABLEACCESS_DENIED_ERROR
SHOW COLUMNS FROM test.t1;
SHOW COLUMNS FROM test.t2;
disconnect con1;
connection default;

DROP ROLE r;
DROP USER u@localhost;
DROP TABLE t1;

--echo #
--echo # Column-level GRANT+DENY should block SHOW COLUMNS
--echo #
CREATE TABLE t1 (a INT, b INT);
CREATE USER u@localhost;
GRANT SELECT (a) ON test.t1 TO u@localhost;
DENY SELECT (a) ON test.t1 TO u@localhost;

connect (con2, localhost, u,,);
--error ER_TABLEACCESS_DENIED_ERROR
SHOW COLUMNS FROM test.t1;
disconnect con2;
connection default;

DROP USER u@localhost;
DROP TABLE t1;

--echo #
--echo # Mixed column GRANT+DENY should allow SHOW COLUMNS
--echo #
CREATE TABLE t1 (a INT, b INT);
CREATE USER u@localhost;
GRANT SELECT (a) ON test.t1 TO u@localhost;
DENY SELECT (b) ON test.t1 TO u@localhost;

connect (con2, localhost, u,,);
SHOW COLUMNS FROM test.t1;
disconnect con2;
connection default;

DROP USER u@localhost;
DROP TABLE t1;

--echo #
--echo # Higher level DENY should block SHOW COLUMNS
--echo #
CREATE TABLE t1 (a INT);
CREATE USER u@localhost;
CREATE ROLE r;
GRANT SELECT ON test.t1 TO r;
GRANT r TO u@localhost;

--echo #
--echo # Database-level DENY
--echo #
DENY SELECT ON test.* TO r;
connect (con3, localhost, u,,);
SET ROLE r;
--error ER_TABLEACCESS_DENIED_ERROR
SHOW COLUMNS FROM test.t1;
disconnect con3;
connection default;

REVOKE DENY SELECT ON test.* FROM r;

DROP ROLE r;
DROP USER u@localhost;
DROP TABLE t1;
DROP TABLE t2;

[Dauer der Verarbeitung: 0.13 Sekunden, vorverarbeitet 2026-10-08]