mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge zippy.cornsilk.net:/home/cmiller/work/mysql/merge/tmp_merge
into zippy.cornsilk.net:/home/cmiller/work/mysql/merge/mysql-5.0
This commit is contained in:
@ -868,6 +868,81 @@ insert into mysql.user select * from t2;
|
||||
flush privileges;
|
||||
drop table t2;
|
||||
drop table t1;
|
||||
CREATE DATABASE mysqltest3;
|
||||
use mysqltest3;
|
||||
CREATE TABLE t_nn (c1 INT);
|
||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||
CREATE DATABASE mysqltest2;
|
||||
use mysqltest2;
|
||||
CREATE TABLE t_nn (c1 INT);
|
||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_yn AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_gy AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_ny AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_yy AS SELECT * FROM t_nn WHERE c1=55;
|
||||
GRANT SHOW VIEW ON mysqltest2.v_ny TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SELECT ON mysqltest2.v_yn TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SELECT ON mysqltest2.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SHOW VIEW,SELECT ON mysqltest2.v_yy TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
SHOW CREATE VIEW mysqltest2.v_nn;
|
||||
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
|
||||
SHOW CREATE TABLE mysqltest2.v_nn;
|
||||
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
|
||||
SHOW CREATE VIEW mysqltest2.v_yn;
|
||||
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn'
|
||||
SHOW CREATE TABLE mysqltest2.v_yn;
|
||||
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v_yn'
|
||||
SHOW CREATE TABLE mysqltest2.v_ny;
|
||||
View Create View
|
||||
v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn`
|
||||
SHOW CREATE VIEW mysqltest2.v_ny;
|
||||
View Create View
|
||||
v_ny CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_ny` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn`
|
||||
SHOW CREATE TABLE mysqltest3.t_nn;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't_nn'
|
||||
SHOW CREATE VIEW mysqltest3.t_nn;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't_nn'
|
||||
SHOW CREATE VIEW mysqltest3.v_nn;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
|
||||
SHOW CREATE TABLE mysqltest3.v_nn;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v_nn'
|
||||
SHOW CREATE TABLE mysqltest2.t_nn;
|
||||
Table Create Table
|
||||
t_nn CREATE TABLE `t_nn` (
|
||||
`c1` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||
ERROR HY000: 'mysqltest2.t_nn' is not VIEW
|
||||
SHOW CREATE VIEW mysqltest2.v_yy;
|
||||
View Create View
|
||||
v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55)
|
||||
SHOW CREATE TABLE mysqltest2.v_yy;
|
||||
View Create View
|
||||
v_yy CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest2`.`v_yy` AS select `mysqltest2`.`t_nn`.`c1` AS `c1` from `mysqltest2`.`t_nn` where (`mysqltest2`.`t_nn`.`c1` = 55)
|
||||
SHOW CREATE TABLE mysqltest2.v_nn;
|
||||
View Create View
|
||||
v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn`
|
||||
SHOW CREATE VIEW mysqltest2.v_nn;
|
||||
View Create View
|
||||
v_nn CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_nn` AS select `t_nn`.`c1` AS `c1` from `t_nn`
|
||||
SHOW CREATE TABLE mysqltest2.t_nn;
|
||||
Table Create Table
|
||||
t_nn CREATE TABLE `t_nn` (
|
||||
`c1` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||
ERROR HY000: 'mysqltest2.t_nn' is not VIEW
|
||||
DROP VIEW mysqltest2.v_nn;
|
||||
DROP VIEW mysqltest2.v_yn;
|
||||
DROP VIEW mysqltest2.v_ny;
|
||||
DROP VIEW mysqltest2.v_yy;
|
||||
DROP TABLE mysqltest2.t_nn;
|
||||
DROP DATABASE mysqltest2;
|
||||
DROP VIEW mysqltest3.v_nn;
|
||||
DROP TABLE mysqltest3.t_nn;
|
||||
DROP DATABASE mysqltest3;
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysqltest_1'@'localhost';
|
||||
DROP USER 'mysqltest_1'@'localhost';
|
||||
create user mysqltest1_thisisreallytoolong;
|
||||
ERROR HY000: Operation CREATE USER failed for 'mysqltest1_thisisreallytoolong'@'%'
|
||||
End of 5.0 tests
|
||||
|
@ -682,6 +682,133 @@ drop table t2;
|
||||
|
||||
drop table t1;
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Bug#20214: Incorrect error when user calls SHOW CREATE VIEW on non
|
||||
# privileged view
|
||||
#
|
||||
|
||||
connection master;
|
||||
|
||||
CREATE DATABASE mysqltest3;
|
||||
use mysqltest3;
|
||||
|
||||
CREATE TABLE t_nn (c1 INT);
|
||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||
|
||||
CREATE DATABASE mysqltest2;
|
||||
use mysqltest2;
|
||||
|
||||
CREATE TABLE t_nn (c1 INT);
|
||||
CREATE VIEW v_nn AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_yn AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_gy AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_ny AS SELECT * FROM t_nn;
|
||||
CREATE VIEW v_yy AS SELECT * FROM t_nn WHERE c1=55;
|
||||
|
||||
GRANT SHOW VIEW ON mysqltest2.v_ny TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SELECT ON mysqltest2.v_yn TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SELECT ON mysqltest2.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
GRANT SHOW VIEW,SELECT ON mysqltest2.v_yy TO 'mysqltest_1'@'localhost' IDENTIFIED BY 'mysqltest_1';
|
||||
|
||||
connect (mysqltest_1, localhost, mysqltest_1, mysqltest_1,);
|
||||
|
||||
# fail because of missing SHOW VIEW (have generic SELECT)
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE VIEW mysqltest2.v_nn;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE TABLE mysqltest2.v_nn;
|
||||
|
||||
|
||||
|
||||
# fail because of missing SHOW VIEW
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE VIEW mysqltest2.v_yn;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE TABLE mysqltest2.v_yn;
|
||||
|
||||
|
||||
|
||||
# succeed (despite of missing SELECT, having SHOW VIEW bails us out)
|
||||
SHOW CREATE TABLE mysqltest2.v_ny;
|
||||
|
||||
# succeed (despite of missing SELECT, having SHOW VIEW bails us out)
|
||||
SHOW CREATE VIEW mysqltest2.v_ny;
|
||||
|
||||
|
||||
|
||||
# fail because of missing (specific or generic) SELECT
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE TABLE mysqltest3.t_nn;
|
||||
|
||||
# fail because of missing (specific or generic) SELECT (not because it's not a view!)
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE VIEW mysqltest3.t_nn;
|
||||
|
||||
|
||||
|
||||
# fail because of missing missing (specific or generic) SELECT (and SHOW VIEW)
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE VIEW mysqltest3.v_nn;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
SHOW CREATE TABLE mysqltest3.v_nn;
|
||||
|
||||
|
||||
|
||||
# succeed thanks to generic SELECT
|
||||
SHOW CREATE TABLE mysqltest2.t_nn;
|
||||
|
||||
# fail because it's not a view! (have generic SELECT though)
|
||||
--error ER_WRONG_OBJECT
|
||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||
|
||||
|
||||
|
||||
# succeed, have SELECT and SHOW VIEW
|
||||
SHOW CREATE VIEW mysqltest2.v_yy;
|
||||
|
||||
# succeed, have SELECT and SHOW VIEW
|
||||
SHOW CREATE TABLE mysqltest2.v_yy;
|
||||
|
||||
|
||||
|
||||
#clean-up
|
||||
connection master;
|
||||
|
||||
# succeed, we're root
|
||||
SHOW CREATE TABLE mysqltest2.v_nn;
|
||||
SHOW CREATE VIEW mysqltest2.v_nn;
|
||||
|
||||
SHOW CREATE TABLE mysqltest2.t_nn;
|
||||
|
||||
# fail because it's not a view!
|
||||
--error ER_WRONG_OBJECT
|
||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||
|
||||
|
||||
|
||||
DROP VIEW mysqltest2.v_nn;
|
||||
DROP VIEW mysqltest2.v_yn;
|
||||
DROP VIEW mysqltest2.v_ny;
|
||||
DROP VIEW mysqltest2.v_yy;
|
||||
|
||||
DROP TABLE mysqltest2.t_nn;
|
||||
|
||||
DROP DATABASE mysqltest2;
|
||||
|
||||
|
||||
|
||||
DROP VIEW mysqltest3.v_nn;
|
||||
DROP TABLE mysqltest3.t_nn;
|
||||
|
||||
DROP DATABASE mysqltest3;
|
||||
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysqltest_1'@'localhost';
|
||||
DROP USER 'mysqltest_1'@'localhost';
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Bug #10668: CREATE USER does not enforce username length limit
|
||||
#
|
||||
|
@ -122,6 +122,7 @@ static void client_disconnect();
|
||||
void die(const char *file, int line, const char *expr)
|
||||
{
|
||||
fprintf(stderr, "%s:%d: check failed: '%s'\n", file, line, expr);
|
||||
fflush(stderr);
|
||||
abort();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user