Bug #29541 Can't edit SP over internet
Submitted: 4 Jul 2007 5:15 Modified: 4 Jul 2007 6:17
Reporter: Jared S (Silver Quality Contributor) Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Query Browser Severity:S1 (Critical)
Version:1.2.12 OS:Windows (Vista)
Assigned to: CPU Architecture:Any
Tags: internet, qc, rights, stored procedure

[4 Jul 2007 5:15] Jared S
Description:
Hi!  Query Browser won't show me contents of SP when I have setup user with all rights to the schema.

How to repeat:
1.  Connect to my server
2.  Edit my proc called 'InsertBug'

RESULT SP body is blank

Suggested fix:
Loosen security for non root user if needs to be.
[4 Jul 2007 5:32] Valeriy Kravchuk
Thank you for a bug report. Sorry, but I was not able to repeat the behaviour described. I see your procedure code in QB 1.2.12 on my XP (do you want a screenshot?). So, please, check again.

It can be Vista-specific bug also...
[4 Jul 2007 5:36] Valeriy Kravchuk
Sorry, SP body is really empty, but same is with mysql command line client:

mysql> show create procedure InsertBug;
+-----------+-----------------------------------------+------------------+
| Procedure | sql_mode                                | Create Procedure |
+-----------+-----------------------------------------+------------------+
| InsertBug | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER | NULL             |
+-----------+-----------------------------------------+------------------+
1 row in set (0.39 sec)

So it is NOT QB-specific bug at all.
[4 Jul 2007 5:46] Valeriy Kravchuk
I think, this is not a bug really. Please, read the manual, http://dev.mysql.com/doc/refman/5.0/en/show-create-procedure.html, for example:

"The statements require that you be the owner of the routine or have SELECT access to the mysql.proc table."

Now you have:

mysql> select * from information_schema.routines\G
*************************** 1. row ***************************
     SPECIFIC_NAME: InsertBug
   ROUTINE_CATALOG: NULL
    ROUTINE_SCHEMA: bugs
      ROUTINE_NAME: InsertBug
      ROUTINE_TYPE: PROCEDURE
    DTD_IDENTIFIER: NULL
      ROUTINE_BODY: SQL
ROUTINE_DEFINITION: NULL
     EXTERNAL_NAME: NULL
 EXTERNAL_LANGUAGE: NULL
   PARAMETER_STYLE: SQL
  IS_DETERMINISTIC: NO
   SQL_DATA_ACCESS: CONTAINS SQL
          SQL_PATH: NULL
     SECURITY_TYPE: DEFINER
           CREATED: 2007-07-04 14:54:48
      LAST_ALTERED: 2007-07-04 14:54:48
          SQL_MODE: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER
   ROUTINE_COMMENT:
           DEFINER: root@localhost
1 row in set (0.44 sec)

DEFINER is root@localhost, and bugs user has no SELECT privilege on mysql.proc. Hence the result.
[4 Jul 2007 6:17] Jared S
Thx for info.