mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
merge 5.1-5.1.29-rc to B38701 working tree
This commit is contained in:
@ -1176,6 +1176,24 @@ SHOW INDEX FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
#
|
||||
# Bug#38821: Assert table->auto_increment_field_not_null failed in open_table()
|
||||
#
|
||||
CREATE TABLE t1 (a INTEGER AUTO_INCREMENT PRIMARY KEY, b INTEGER NOT NULL);
|
||||
INSERT IGNORE INTO t1 (b) VALUES (5);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS t2 (a INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY)
|
||||
SELECT a FROM t1;
|
||||
--error 1062
|
||||
CREATE TABLE IF NOT EXISTS t2 (a INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY)
|
||||
SELECT a FROM t1;
|
||||
--error 1062
|
||||
CREATE TABLE IF NOT EXISTS t2 (a INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY)
|
||||
SELECT a FROM t1;
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
|
@ -64,6 +64,16 @@ drop table t1;
|
||||
|
||||
SELECT 1 REGEXP NULL;
|
||||
|
||||
|
||||
#
|
||||
# Bug #39021: SELECT REGEXP BINARY NULL never returns
|
||||
#
|
||||
|
||||
SELECT '' REGEXP BINARY NULL;
|
||||
SELECT NULL REGEXP BINARY NULL;
|
||||
SELECT 'A' REGEXP BINARY NULL;
|
||||
SELECT "ABC" REGEXP BINARY NULL;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
|
||||
|
@ -605,7 +605,7 @@ connection conn1;
|
||||
USE db1;
|
||||
--error ER_COLUMNACCESS_DENIED_ERROR
|
||||
SELECT c FROM t2;
|
||||
--error ER_COLUMNACCESS_DENIED_ERROR
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SELECT * FROM t2;
|
||||
--error ER_COLUMNACCESS_DENIED_ERROR
|
||||
SELECT * FROM t1 JOIN t2 USING (b);
|
||||
|
@ -1219,3 +1219,71 @@ DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.1 tests.
|
||||
|
||||
#
|
||||
# Bug#36086: SELECT * from views don't check column grants
|
||||
#
|
||||
CREATE USER mysqluser1@localhost;
|
||||
CREATE DATABASE mysqltest1;
|
||||
|
||||
USE mysqltest1;
|
||||
|
||||
CREATE TABLE t1 ( a INT, b INT );
|
||||
CREATE TABLE t2 ( a INT, b INT );
|
||||
|
||||
CREATE VIEW v1 AS SELECT a, b FROM t1;
|
||||
|
||||
GRANT SELECT( a ) ON v1 TO mysqluser1@localhost;
|
||||
GRANT UPDATE( b ) ON t2 TO mysqluser1@localhost;
|
||||
|
||||
--connect (connection1, localhost, mysqluser1, , test)
|
||||
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SELECT * FROM mysqltest1.v1;
|
||||
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
CREATE VIEW v1 AS SELECT * FROM mysqltest1.t2;
|
||||
|
||||
--disconnect connection1
|
||||
|
||||
--connection default
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
DROP VIEW v1;
|
||||
DROP DATABASE mysqltest1;
|
||||
DROP USER mysqluser1@localhost;
|
||||
|
||||
#
|
||||
# Bug#35600: Security breach via view, I_S table and prepared
|
||||
# statement/stored procedure
|
||||
#
|
||||
CREATE USER mysqluser1@localhost;
|
||||
CREATE DATABASE mysqltest1;
|
||||
|
||||
USE mysqltest1;
|
||||
|
||||
CREATE VIEW v1 AS SELECT * FROM information_schema.tables LIMIT 1;
|
||||
CREATE ALGORITHM = TEMPTABLE VIEW v2 AS SELECT 1 AS A;
|
||||
|
||||
--connection default
|
||||
GRANT SELECT ON mysqltest1.* to mysqluser1@localhost;
|
||||
|
||||
--connect (connection1, localhost, mysqluser1, , test)
|
||||
PREPARE stmt_v1 FROM "SELECT * FROM mysqltest1.v1";
|
||||
PREPARE stmt_v2 FROM "SELECT * FROM mysqltest1.v2";
|
||||
|
||||
--connection default
|
||||
REVOKE SELECT ON mysqltest1.* FROM mysqluser1@localhost;
|
||||
|
||||
--connection connection1
|
||||
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
EXECUTE stmt_v1;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
EXECUTE stmt_v2;
|
||||
|
||||
--disconnect connection1
|
||||
--connection default
|
||||
DROP VIEW v1, v2;
|
||||
DROP DATABASE mysqltest1;
|
||||
DROP USER mysqluser1@localhost;
|
||||
|
Reference in New Issue
Block a user