Bug #17030 Events: Missing Event_priv in host table
Submitted: 2 Feb 2006 4:28 Modified: 2 Feb 2006 10:09
Reporter: Paul DuBois Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Installing Severity:S3 (Non-critical)
Version:5.1.6 OS:
Assigned to: CPU Architecture:Any

[2 Feb 2006 4:28] Paul DuBois
Description:
With the advent of the EVENT privilege, the Event_priv was
added to the user and db tables.  But privileges that are added
to the db table also need to be added to the host table.
Event_priv is missing from the host table.

This issue affects both mysql_create_system_tables.sh
and mysql_fix_privilege_tables.sql.

How to repeat:
mysql_fix_privilege_tables.sql:

#
# EVENT privilege
#
ALTER TABLE user add Event_priv enum('N','Y') character set utf8 DEFAULT 'N' NOT NULL AFTER Create_user_priv;
ALTER TABLE db add Event_priv enum('N','Y') character set utf8 DEFAULT 'N' NOT NULL;

There needs to be a similar ALTER TABLE for host.

mysql_create_system_tables.sh:

This is part of the creation for the db table:

  c_d="$c_d   Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
  c_d="$c_d   Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
  c_d="$c_d   Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"

The same part for the host table looks like this:

  c_h="$c_h  Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
  c_h="$c_h  Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"

Note the missing line for Event_priv.

Suggested fix:
See how-to-repeat.
[2 Feb 2006 10:09] Sergei Golubchik
GRANT/REVOKE commands don't modify mysql.host table, and we don't officially support direct modifications of privilege tables. So, there's little sense in adding the column that cannot be modified.