mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 11:57:38 +02:00
Merge a88-113-38-195.elisa-laajakaista.fi:/home/my/new/mysql-5.0-marvel
into a88-113-38-195.elisa-laajakaista.fi:/home/my/new/mysql-5.1-marvel client/mysql.cc: Auto merged client/mysql_upgrade.c: Auto merged client/mysqlbinlog.cc: Auto merged client/mysqldump.c: Auto merged mysql-test/r/sp.result: Auto merged mysql-test/t/grant.test: Auto merged mysql-test/t/sp.test: Auto merged mysys/my_malloc.c: Auto merged mysys/my_static.c: Auto merged mysys/safemalloc.c: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/handler.cc: Auto merged sql/item.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_func.h: Auto merged sql/log.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/opt_range.cc: Auto merged sql/sp.cc: Auto merged sql/sp_head.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_delete.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_load.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_table.cc: Auto merged sql-common/client.c: Auto merged sql-common/my_time.c: Auto merged sql/sql_update.cc: Auto merged sql/table.cc: Auto merged storage/archive/ha_archive.cc: Auto merged storage/heap/hp_write.c: Auto merged storage/innobase/handler/ha_innodb.cc: Auto merged storage/ndb/src/mgmclient/CommandInterpreter.cpp: Auto merged mysql-test/r/grant.result: Merged from 5.0 sql/sql_db.cc: Merged from 5.0 sql/sql_parse.cc: Merged from 5.0
This commit is contained in:
commit
e628ba73e3
7 changed files with 342 additions and 51 deletions
|
|
@ -1068,6 +1068,150 @@ DROP DATABASE mysqltest4;
|
|||
DROP USER mysqltest_1@localhost;
|
||||
|
||||
|
||||
#
|
||||
# BUG#27337: Privileges are not restored properly.
|
||||
#
|
||||
# Actually, the patch for this bugs fixes two problems. So, here are two test
|
||||
# cases.
|
||||
|
||||
# Test case 1: privileges are not restored properly after calling a stored
|
||||
# routine defined with SQL SECURITY INVOKER clause.
|
||||
|
||||
# Prepare.
|
||||
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS mysqltest1;
|
||||
DROP DATABASE IF EXISTS mysqltest2;
|
||||
--enable_warnings
|
||||
|
||||
CREATE DATABASE mysqltest1;
|
||||
CREATE DATABASE mysqltest2;
|
||||
|
||||
GRANT ALL PRIVILEGES ON mysqltest1.* TO mysqltest_1@localhost;
|
||||
GRANT SELECT ON mysqltest2.* TO mysqltest_1@localhost;
|
||||
|
||||
CREATE PROCEDURE mysqltest1.p1() SQL SECURITY INVOKER
|
||||
SELECT 1;
|
||||
|
||||
# Test.
|
||||
|
||||
--connect (bug27337_con1,localhost,mysqltest_1,,mysqltest2)
|
||||
--echo
|
||||
--echo ---> connection: bug27337_con1
|
||||
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
CREATE TABLE t1(c INT);
|
||||
|
||||
CALL mysqltest1.p1();
|
||||
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
CREATE TABLE t1(c INT);
|
||||
|
||||
--disconnect bug27337_con1
|
||||
|
||||
--connect (bug27337_con2,localhost,mysqltest_1,,mysqltest2)
|
||||
--echo
|
||||
--echo ---> connection: bug27337_con2
|
||||
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
CREATE TABLE t1(c INT);
|
||||
|
||||
SHOW TABLES;
|
||||
|
||||
# Cleanup.
|
||||
|
||||
--connection default
|
||||
--echo
|
||||
--echo ---> connection: default
|
||||
|
||||
--disconnect bug27337_con2
|
||||
|
||||
DROP DATABASE mysqltest1;
|
||||
DROP DATABASE mysqltest2;
|
||||
|
||||
DROP USER mysqltest_1@localhost;
|
||||
|
||||
# Test case 2: priveleges are not checked properly for prepared statements.
|
||||
|
||||
# Prepare.
|
||||
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS mysqltest1;
|
||||
DROP DATABASE IF EXISTS mysqltest2;
|
||||
--enable_warnings
|
||||
|
||||
CREATE DATABASE mysqltest1;
|
||||
CREATE DATABASE mysqltest2;
|
||||
|
||||
CREATE TABLE mysqltest1.t1(c INT);
|
||||
CREATE TABLE mysqltest2.t2(c INT);
|
||||
|
||||
GRANT SELECT ON mysqltest1.t1 TO mysqltest_1@localhost;
|
||||
GRANT SELECT ON mysqltest2.t2 TO mysqltest_2@localhost;
|
||||
|
||||
# Test.
|
||||
|
||||
--connect (bug27337_con1,localhost,mysqltest_1,,mysqltest1)
|
||||
--echo
|
||||
--echo ---> connection: bug27337_con1
|
||||
|
||||
SHOW TABLES FROM mysqltest1;
|
||||
|
||||
PREPARE stmt1 FROM 'SHOW TABLES FROM mysqltest1';
|
||||
|
||||
EXECUTE stmt1;
|
||||
|
||||
--connect (bug27337_con2,localhost,mysqltest_2,,mysqltest2)
|
||||
--echo
|
||||
--echo ---> connection: bug27337_con2
|
||||
|
||||
SHOW COLUMNS FROM mysqltest2.t2;
|
||||
|
||||
PREPARE stmt2 FROM 'SHOW COLUMNS FROM mysqltest2.t2';
|
||||
|
||||
EXECUTE stmt2;
|
||||
|
||||
--connection default
|
||||
--echo
|
||||
--echo ---> connection: default
|
||||
|
||||
REVOKE SELECT ON mysqltest1.t1 FROM mysqltest_1@localhost;
|
||||
REVOKE SELECT ON mysqltest2.t2 FROM mysqltest_2@localhost;
|
||||
|
||||
--connection bug27337_con1
|
||||
--echo
|
||||
--echo ---> connection: bug27337_con1
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
SHOW TABLES FROM mysqltest1;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
EXECUTE stmt1;
|
||||
|
||||
--connection bug27337_con2
|
||||
--echo
|
||||
--echo ---> connection: bug27337_con2
|
||||
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW COLUMNS FROM mysqltest2.t2;
|
||||
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
EXECUTE stmt2;
|
||||
|
||||
# Cleanup.
|
||||
|
||||
--connection default
|
||||
--echo
|
||||
--echo ---> connection: default
|
||||
|
||||
--disconnect bug27337_con2
|
||||
|
||||
DROP DATABASE mysqltest1;
|
||||
DROP DATABASE mysqltest2;
|
||||
|
||||
DROP USER mysqltest_1@localhost;
|
||||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue