Details
-
Bug
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
13.1
-
None
-
Not for Release Notes
-
Q3/2026 Server Maintenance
Description
SET sql_mode=ORACLE; |
CREATE DATABASE secdb; |
CREATE PACKAGE secdb.pkg AS |
TYPE rec_t IS RECORD (a INT, secret VARCHAR(30)); |
FUNCTION f RETURN INT; |
END; |
$$
|
CREATE PACKAGE BODY secdb.pkg AS FUNCTION f RETURN INT AS BEGIN RETURN 42; END; END; |
$$
|
CREATE DATABASE appdb; |
CREATE USER u_none@localhost; |
GRANT ALL ON appdb.* TO u_none@localhost; |
connect cnone, localhost, u_none,, appdb; |
SET sql_mode=ORACLE; |
CREATE PROCEDURE appdb.p AS r secdb.pkg.rec_t; |
BEGIN r.a:=1; r.secret:='x'; SELECT r.a; END; |
$$
|
CALL appdb.p;
|
r.a
|
1
|
SELECT secdb.pkg.f(); |
ERROR 42000: execute command denied to user 'u_none'@'localhost' for routine 'secdb.pkg' |
connection default; |
disconnect cnone;
|
DROP USER u_none@localhost; |
DROP DATABASE appdb; |
DROP DATABASE secdb; |
MTR Test
|
MDEV-39587 CS 13.1.0 667959df058b5179e737f103d78abef77f1bca5e (Debug, Clang 18.1.3-11) Build 22/06/2026 |
SET sql_mode=ORACLE;
|
|
|
CREATE DATABASE secdb;
|
DELIMITER $$;
|
CREATE PACKAGE secdb.pkg AS
|
TYPE rec_t IS RECORD (a INT, secret VARCHAR(30));
|
FUNCTION f RETURN INT;
|
END;
|
$$
|
CREATE PACKAGE BODY secdb.pkg AS FUNCTION f RETURN INT AS BEGIN RETURN 42; END; END;
|
$$
|
DELIMITER ;$$
|
CREATE DATABASE appdb;
|
CREATE USER u_none@localhost;
|
# No privilege on secdb
|
GRANT ALL ON appdb.* TO u_none@localhost;
|
|
|
connect (cnone, localhost, u_none,, appdb);
|
SET sql_mode=ORACLE;
|
|
|
# The server allows a package to be created using a record type defined in a package owned by another schema, even when the user has no privileges on the secdb schema
|
|
|
DELIMITER $$;
|
CREATE PROCEDURE appdb.p AS r secdb.pkg.rec_t;
|
BEGIN r.a:=1; r.secret:='x'; SELECT r.a; END;
|
$$
|
DELIMITER ;$$
|
CALL appdb.p;
|
|
|
# Here the package routine is correctly denied
|
--error ER_PROCACCESS_DENIED_ERROR
|
SELECT secdb.pkg.f();
|
|
|
connection default;
|
disconnect cnone;
|
DROP USER u_none@localhost;
|
DROP DATABASE appdb;
|
DROP DATABASE secdb;
|
Attachments
Issue Links
- is caused by
-
MDEV-39587 Package-wide TYPE for variable declarations
-
- In Testing
-