Fix of privilege problem in views and PS
sql/sql_base.cc: Column for views should be looked in views (not in underlying table) sql/sql_parse.cc: if we reread grants for single table we should read both database and tables grants for views (not only database grants).
This commit is contained in:
parent
e89da2e0f1
commit
dd3b27834c
@ -6407,7 +6407,7 @@ find_field_in_tables(THD *thd, Item_ident *item,
|
|||||||
find_field_in_table even in the case of information schema tables
|
find_field_in_table even in the case of information schema tables
|
||||||
when table_ref->field_translation != NULL.
|
when table_ref->field_translation != NULL.
|
||||||
*/
|
*/
|
||||||
if (table_ref->table &&
|
if (table_ref->table && !table_ref->view &&
|
||||||
(!table_ref->is_merged_derived() ||
|
(!table_ref->is_merged_derived() ||
|
||||||
(!table_ref->is_multitable() && table_ref->merged_for_insert)))
|
(!table_ref->is_multitable() && table_ref->merged_for_insert)))
|
||||||
{
|
{
|
||||||
|
@ -5210,8 +5210,6 @@ bool check_single_table_access(THD *thd, ulong privilege,
|
|||||||
/* Show only 1 table for check_grant */
|
/* Show only 1 table for check_grant */
|
||||||
if (!(all_tables->belong_to_view &&
|
if (!(all_tables->belong_to_view &&
|
||||||
(thd->lex->sql_command == SQLCOM_SHOW_FIELDS)) &&
|
(thd->lex->sql_command == SQLCOM_SHOW_FIELDS)) &&
|
||||||
!(all_tables->is_view() &&
|
|
||||||
all_tables->is_merged_derived()) &&
|
|
||||||
check_grant(thd, privilege, all_tables, 0, 1, no_errors))
|
check_grant(thd, privilege, all_tables, 0, 1, no_errors))
|
||||||
goto deny;
|
goto deny;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user