Bug #28627 Root user doesn't get all privileges after default install
Submitted: 23 May 2007 17:35 Modified: 1 Aug 2007 11:16
Reporter: Olaf van der Spek (Basic Quality Contributor) Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Security: Privileges Severity:S3 (Non-critical)
Version:5.1.18, 6.0.0-alpha-community-nt-debug OS:Windows
Assigned to: Konstantin Osipov CPU Architecture:Any
Tags: qc

[23 May 2007 17:35] Olaf van der Spek
Description:
Hi,

After a default install, my root user row looks like this:
                 Host: %
                 User: root
             Password: *17D
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
          Reload_priv: Y
        Shutdown_priv: Y
         Process_priv: Y
            File_priv: Y
           Grant_priv: Y
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
         Show_db_priv: Y
           Super_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
         Execute_priv: Y
      Repl_slave_priv: Y
     Repl_client_priv: Y
     Create_view_priv: N
       Show_view_priv: N
  Create_routine_priv: N
   Alter_routine_priv: N
     Create_user_priv: N
           Event_priv: N
         Trigger_priv: N
             ssl_type:
           ssl_cipher:
          x509_issuer:
         x509_subject:
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0

It's missing some privileges and I think this caused a query like "GRANT ALL PRIVILEGES ON `vb` . * TO 'vb'@'%';" to fail.

How to repeat:
Install
Check root privileges
[23 May 2007 17:42] Olaf van der Spek
It appears the second root user (host = '%') doesn't get the same privileges as the first root user.

mysql> select * from user\G
***************************
                 Host: loca
                 User: root
             Password: *667
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
          Reload_priv: Y
        Shutdown_priv: Y
         Process_priv: Y
            File_priv: Y
           Grant_priv: Y
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
         Show_db_priv: Y
           Super_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
         Execute_priv: Y
      Repl_slave_priv: Y
     Repl_client_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: Y
     Create_user_priv: Y
           Event_priv: Y
         Trigger_priv: Y
             ssl_type:
           ssl_cipher:
          x509_issuer:
         x509_subject:
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0
***************************
                 Host: %
                 User: root
             Password: *667
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
          Reload_priv: Y
        Shutdown_priv: Y
         Process_priv: Y
            File_priv: Y
           Grant_priv: Y
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
         Show_db_priv: Y
           Super_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
         Execute_priv: Y
      Repl_slave_priv: Y
     Repl_client_priv: Y
     Create_view_priv: N
       Show_view_priv: N
  Create_routine_priv: N
   Alter_routine_priv: N
     Create_user_priv: N
           Event_priv: N
         Trigger_priv: N
             ssl_type:
           ssl_cipher:
          x509_issuer:
         x509_subject:
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0
2 rows in set (0.00 sec)
[26 May 2007 10:17] Valeriy Kravchuk
Thank you for a problem report. I can confirm your findings, but why do you think it is a bug?
[26 May 2007 12:10] Olaf van der Spek
Because I don't see any reason for the two sets of root privileges to be different.
[26 May 2007 14:41] Valeriy Kravchuk
Well, at least, the reason, if any, should be explicitely documented. And this may be a problem for people who need to administer MySQL databases remotely.
[1 Aug 2007 11:16] Konstantin Osipov
Can't repeat this bug any more.
Must have been fixed by Magnus' re-work of the installation scripts.
-------------------------------------------------------
*** /opt/local/work/mysql-5.1-runtime/mysql-test/r/foo.result	Wed Aug  1 14:14:47 2007
--- /opt/local/work/mysql-5.1-runtime/mysql-test/r/foo.reject	Wed Aug  1 14:15:37 2007
***************
*** 0 ****
--- 1,118 ----
+ select * from mysql.user;
+ Host	localhost
+ User	root
+ Password	
+ Select_priv	Y
+ Insert_priv	Y
+ Update_priv	Y
+ Delete_priv	Y
+ Create_priv	Y
+ Drop_priv	Y
+ Reload_priv	Y
+ Shutdown_priv	Y
+ Process_priv	Y
+ File_priv	Y
+ Grant_priv	Y
+ References_priv	Y
+ Index_priv	Y
+ Alter_priv	Y
+ Show_db_priv	Y
+ Super_priv	Y
+ Create_tmp_table_priv	Y
+ Lock_tables_priv	Y
+ Execute_priv	Y
+ Repl_slave_priv	Y
+ Repl_client_priv	Y
+ Create_view_priv	Y
+ Show_view_priv	Y
+ Create_routine_priv	Y
+ Alter_routine_priv	Y
+ Create_user_priv	Y
+ Event_priv	Y
+ Trigger_priv	Y
+ ssl_type	
+ ssl_cipher	
+ x509_issuer	
+ x509_subject	
+ max_questions	0
+ max_updates	0
+ max_connections	0
+ max_user_connections	0
+ Host	bodhi
+ User	root
+ Password	
+ Select_priv	Y
+ Insert_priv	Y
+ Update_priv	Y
+ Delete_priv	Y
+ Create_priv	Y
+ Drop_priv	Y
+ Reload_priv	Y
+ Shutdown_priv	Y
+ Process_priv	Y
+ File_priv	Y
+ Grant_priv	Y
+ References_priv	Y
+ Index_priv	Y
+ Alter_priv	Y
+ Show_db_priv	Y
+ Super_priv	Y
+ Create_tmp_table_priv	Y
+ Lock_tables_priv	Y
+ Execute_priv	Y
+ Repl_slave_priv	Y
+ Repl_client_priv	Y
+ Create_view_priv	Y
+ Show_view_priv	Y
+ Create_routine_priv	Y
+ Alter_routine_priv	Y
+ Create_user_priv	Y
+ Event_priv	Y
+ Trigger_priv	Y
+ ssl_type	
+ ssl_cipher	
+ x509_issuer	
+ x509_subject	
+ max_questions	0
+ max_updates	0
+ max_connections	0
+ max_user_connections	0
+ Host	127.0.0.1
+ User	root
+ Password	
+ Select_priv	Y
+ Insert_priv	Y
+ Update_priv	Y
+ Delete_priv	Y
+ Create_priv	Y
+ Drop_priv	Y
+ Reload_priv	Y
+ Shutdown_priv	Y
+ Process_priv	Y
+ File_priv	Y
+ Grant_priv	Y
+ References_priv	Y
+ Index_priv	Y
+ Alter_priv	Y
+ Show_db_priv	Y
+ Super_priv	Y
+ Create_tmp_table_priv	Y
+ Lock_tables_priv	Y
+ Execute_priv	Y
+ Repl_slave_priv	Y
+ Repl_client_priv	Y
+ Create_view_priv	Y
+ Show_view_priv	Y
+ Create_routine_priv	Y
+ Alter_routine_priv	Y
+ Create_user_priv	Y
+ Event_priv	Y
+ Trigger_priv	Y
+ ssl_type	
+ ssl_cipher	
+ x509_issuer	
+ x509_subject	
+ max_questions	0
+ max_updates	0
+ max_connections	0
+ max_user_connections	0