Manual merge from mysql-5.1.
This commit is contained in:
commit
a35e013144
@ -1218,3 +1218,22 @@ Warnings:
|
||||
Note 1449 The user specified as a definer ('no_such_user'@'no_such_host') does not exist
|
||||
DROP TABLE t1;
|
||||
DROP VIEW v1;
|
||||
#
|
||||
# Bug #46019: ERROR 1356 When selecting from within another
|
||||
# view that has Group By
|
||||
#
|
||||
CREATE DATABASE mysqltest1;
|
||||
USE mysqltest1;
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT a FROM t1 GROUP BY a;
|
||||
CREATE SQL SECURITY INVOKER VIEW v2 AS SELECT a FROM v1;
|
||||
CREATE USER mysqluser1;
|
||||
GRANT SELECT ON TABLE t1 TO mysqluser1;
|
||||
GRANT SELECT, SHOW VIEW ON TABLE v1 TO mysqluser1;
|
||||
GRANT SELECT, SHOW VIEW ON TABLE v2 TO mysqluser1;
|
||||
SELECT a FROM v1;
|
||||
a
|
||||
SELECT a FROM v2;
|
||||
a
|
||||
DROP USER mysqluser1;
|
||||
DROP DATABASE mysqltest1;
|
||||
|
@ -1506,3 +1506,29 @@ DROP VIEW v1;
|
||||
# Wait till we reached the initial number of concurrent sessions
|
||||
--source include/wait_until_count_sessions.inc
|
||||
|
||||
--echo #
|
||||
--echo # Bug #46019: ERROR 1356 When selecting from within another
|
||||
--echo # view that has Group By
|
||||
--echo #
|
||||
CREATE DATABASE mysqltest1;
|
||||
USE mysqltest1;
|
||||
|
||||
CREATE TABLE t1 (a INT);
|
||||
|
||||
CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT a FROM t1 GROUP BY a;
|
||||
CREATE SQL SECURITY INVOKER VIEW v2 AS SELECT a FROM v1;
|
||||
|
||||
CREATE USER mysqluser1;
|
||||
|
||||
GRANT SELECT ON TABLE t1 TO mysqluser1;
|
||||
GRANT SELECT, SHOW VIEW ON TABLE v1 TO mysqluser1;
|
||||
GRANT SELECT, SHOW VIEW ON TABLE v2 TO mysqluser1;
|
||||
|
||||
--connect (mysqluser1, localhost, mysqluser1,,mysqltest1)
|
||||
SELECT a FROM v1;
|
||||
SELECT a FROM v2;
|
||||
|
||||
--connection default
|
||||
--disconnect mysqluser1
|
||||
DROP USER mysqluser1;
|
||||
DROP DATABASE mysqltest1;
|
||||
|
@ -5153,8 +5153,6 @@ bool check_single_table_access(THD *thd, ulong privilege,
|
||||
/* Show only 1 table for check_grant */
|
||||
if (!(all_tables->belong_to_view &&
|
||||
(thd->lex->sql_command == SQLCOM_SHOW_FIELDS)) &&
|
||||
!(all_tables->view &&
|
||||
all_tables->effective_algorithm == VIEW_ALGORITHM_TMPTABLE) &&
|
||||
check_grant(thd, privilege, all_tables, 0, 1, no_errors))
|
||||
goto deny;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user