Commit 9ea8ce72 authored by unknown's avatar unknown
Browse files

Fix for bug#13202 SELECT * INTO OUTFILE ... FROM information_schema.schemata now fails

  allow select into outfile from I_S tables
  it is enough to add FILE_ACL for I_S tables only to 'check_table_access' function
  as we use 'any_db' for 'check_access' function in places where FILE_ACL is required


mysql-test/t/outfile.test:
  Fix for bug#13202 SELECT * INTO OUTFILE ... FROM information_schema.schemata now fails
    test case
parent a9363ce9
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -65,3 +65,21 @@ EXPLAIN
DROP TABLE t1;

# End of 4.1 tests

#
# Bug#13202  SELECT * INTO OUTFILE ... FROM information_schema.schemata now fails
#
disable_query_log;
eval SELECT * INTO OUTFILE "$MYSQL_TEST_DIR/var/tmp/outfile-test.4"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM information_schema.schemata LIMIT 0, 5;
# enable_query_log;
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.4

use information_schema;
# disable_query_log;
eval SELECT * INTO OUTFILE "$MYSQL_TEST_DIR/var/tmp/outfile-test.4"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM schemata LIMIT 0, 5;
enable_query_log;
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.4
+1 −1
Original line number Diff line number Diff line
@@ -5002,7 +5002,7 @@ check_table_access(THD *thd, ulong want_access,TABLE_LIST *tables,
  for (; tables; tables= tables->next_global)
  {
    if (tables->schema_table && 
        (want_access & ~(SELECT_ACL | EXTRA_ACL)))
        (want_access & ~(SELECT_ACL | EXTRA_ACL | FILE_ACL)))
    {
      if (!no_errors)
        my_error(ER_DBACCESS_DENIED_ERROR, MYF(0),