• unknown's avatar
    Fix for bug #6765 "Implicit access to time zone description · 9ad51c63
    unknown authored
    tables requires privileges for them if some table or column level grants
    present" (with after-review fixes).
    
    We should set SELECT_ACL for implicitly opened tables in 
    my_tz_check_n_skip_implicit_tables() to be able to bypass privilege
    checking in check_grant(). Also we should exclude those tables from
    privilege checking in multi-update.
    
    
    mysql-test/r/timezone2.result:
      Extended test for bug #6116 "SET time_zone := ... requires access to
      mysql.time_zone tables"
      Added test for bug #6765 "Implicit access to time zone description 
      tables requires privileges for them if some table or column level grants
      present"
    mysql-test/t/timezone2.test:
      Extended test for bug #6116 "SET time_zone := ... requires access to
      mysql.time_zone tables"
      Added test for bug #6765 "Implicit access to time zone description 
      tables requires privileges for them if some table or column level grants
      present"
    sql/item_geofunc.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/item_strfunc.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/log.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/mysql_priv.h:
      Now we have to include sql_acl.h before tztime.h, since 
      my_tz_check_n_skip_implicit_tables() defined there requires
      SELECT_ACL constant defined in sql_acl.h.
    sql/mysqld.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/repl_failsafe.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/set_var.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_acl.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_base.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_cache.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_class.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_db.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_derived.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_do.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_insert.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_parse.cc:
      check_one_table_access(): Tweaked comments.
      multi_update_precheck(): Added skipping of implicitly opened tables
        during privilege checking.
    sql/sql_prepare.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_repl.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_show.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_update.cc:
      sql_acl.h is now included via mysql_priv.h
    sql/sql_yacc.yy:
      sql_acl.h is now included via mysql_priv.h
    sql/tztime.h:
      my_tz_check_n_skip_implicit_tables():
        We should set SELECT_ACL for implictly opened tables to be able to
        bypass privilege checking in check_grant().
    9ad51c63
item_strfunc.cc 71.5 KB