Bug #49067 No ability to view/manage privileges under schema level
Submitted: 24 Nov 2009 20:25 Modified: 14 Dec 2009 11:32
Reporter: Todd Farmer (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Workbench Severity:S2 (Serious)
Version:5.2 r4753 OS:Any
Assigned to: CPU Architecture:Any

[24 Nov 2009 20:25] Todd Farmer
Description:
There is no ability to view or manage privileges below the schema level, it seems.  This is problematic, as it prohibits effective usage of WB for management of permissions related to individual tables, columns, procedures, etc.

This is a big gap.  Even if it is not intended for this release, it needs to be adequately documented, and users warned that the list of privileges they see may well be incomplete.  There is no mention of this either in the product, or on the documentation at http://dev.mysql.com/doc/workbench/en/wb-manage-server-accounts-tab.html .

How to repeat:
Create a user with table-level grants, see what is missing in WB:

+-------------------------------------------------+
| Grants for newuser@%                            |
+-------------------------------------------------+
| GRANT USAGE ON *.* TO 'newuser'@'%'             |
| GRANT SELECT ON `this\_test`.* TO 'newuser'@'%' |
| GRANT SELECT ON `mysql`.`user` TO 'newuser'@'%' |
+-------------------------------------------------+
3 rows in set (0.00 sec)

Suggested fix:
Add support for all grants.
[25 Nov 2009 1:05] Miguel Solorzano
While I tried to test on Vista 64-bit and 5.2.8 I got a WB crash:

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Runtime.InteropServices.SEHException: External component has thrown an exception.
   at MySQL.Forms.DrawBoxImpl.drawbox_mouse_click(Object sender, MouseEventArgs e)
   at System.Windows.Forms.Control.OnMouseClick(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3074 (QFE.050727-3000)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
MySQLWorkbench
    Assembly Version: 5.2.8.4572
    Win32 Version: 5.2.8.4572
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/MySQLWorkbench.exe
----------------------------------------
wbprivate.wr
    Assembly Version: 0.0.0.0
    Win32 Version: 
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/wbprivate.wr.DLL
----------------------------------------
wbpublic.wr
    Assembly Version: 0.0.0.0
    Win32 Version: 
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/wbpublic.wr.DLL
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3074 (QFE.050727-3000)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3074 (QFE.050727-3000)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3074 (QFE.050727-3000)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
MySQLCsUtilities
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/MySQLCsUtilities.DLL
----------------------------------------
msvcm90
    Assembly Version: 9.0.30729.1
    Win32 Version: 9.00.30729.1
    CodeBase: file:///C:/Windows/WinSxS/x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_e163563597edeada/msvcm90.dll
----------------------------------------
MySQLGrtShell
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/MySQLGrtShell.EXE
----------------------------------------
WeifenLuo.WinFormsUI.Docking
    Assembly Version: 2.2.3609.7080
    Win32 Version: 2.2.0.0
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/WeifenLuo.WinFormsUI.Docking.DLL
----------------------------------------
System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3074 (QFE.050727-3000)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3074 (QFE.050727-3000)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
WbPlugins
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/WbPlugins.DLL
----------------------------------------
Aga.Controls
    Assembly Version: 1.6.0.0
    Win32 Version: 1.6.0.0
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/Aga.Controls.DLL
----------------------------------------
grt.db.fe
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/grt.db.fe.DLL
----------------------------------------
sqlide.fe
    Assembly Version: 0.0.0.0
    Win32 Version: 0.0.0.0
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/sqlide.fe.DLL
----------------------------------------
ScintillaNet
    Assembly Version: 2.0.3609.7165
    Win32 Version: 2.0.0.0
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/ScintillaNet.DLL
----------------------------------------
grt.helpers.be
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/MySQL%20Workbench%205.2.8%20OSS/grt.helpers.be.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
[25 Nov 2009 12:23] Miguel Solorzano
Same on Ubuntu it crashed:

miguel@quetzal3:~$ mysql-workbench
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/catalog_utils.grt.lua' (lua)
** Message: Initialized Lua module /usr/lib/mysql-workbench/modules/catalog_utils.grt.lua (WbUtils)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/db.mysql.sqlparser.grt.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/db.mysql.sqlide.grt.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/wb.model.grt.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/table_utils.grt.lua' (lua)
** Message: Initialized Lua module /usr/lib/mysql-workbench/modules/table_utils.grt.lua (WbTableUtils)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/wb.validation.grt.so' (cpp)
** Message: WARNING: Could not get pointer to grt_module_init in module /usr/lib/mysql-workbench/modules/wb.validation.grt.so (`grt_module_init': /usr/lib/mysql-workbench/modules/wb.validation.grt.so: undefined symbol: grt_module_init)    
** Message: WARNING: Could not load wb.validation.grt.so: Invalid module /usr/lib/mysql-workbench/modules/wb.validation.grt.so    
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/wb.mysql.import.grt.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/wb_utils_grt.py' (python)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/wb.mysql.validation.grt.so' (cpp)
** Message: WARNING: Could not get pointer to grt_module_init in module /usr/lib/mysql-workbench/modules/wb.mysql.validation.grt.so (`grt_module_init': /usr/lib/mysql-workbench/modules/wb.mysql.validation.grt.so: undefined symbol: grt_module_init)    
** Message: WARNING: Could not load wb.mysql.validation.grt.so: Invalid module /usr/lib/mysql-workbench/modules/wb.mysql.validation.grt.so    
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/forms.grt.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/tools.grt.lua' (lua)
** Message: Initialized Lua module /usr/lib/mysql-workbench/modules/tools.grt.lua (WbTools)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/dbutils.grt.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/wb_admin_grt.py' (python)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/db.mysql.grt.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/modules/db.mysql.query.grt.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/plugins/wb.printing.wbp.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/plugins/db.mysql.editors.wbp.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/plugins/db.mysql.wbp.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/plugins/db.checks.wbp.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/plugins/wb.model.editors.wbp.so' (cpp)
** Message: Trying to load module '/usr/lib/mysql-workbench/plugins/db.mysql.diff.reporting.wbp.so' (cpp)

** (mysql-workbench-bin:2634): WARNING **: Plugin 'wb.tools.quickTables' from module WbTools has invalid type ''

** (mysql-workbench-bin:2634): WARNING **: /home/miguel/.mysql/workbench/wb_options.xml:327: link '6bae90de-d9bc-11de-96ec-0021009b6ea3' <object GrtObject> key=owner could not be resolved

** (mysql-workbench-bin:2634): WARNING **: :15: link '6bb2e724-d9bc-11de-96ec-0021009b6ea3' <object GrtObject> key=owner could not be resolved

** (mysql-workbench-bin:2634): WARNING **: :26: link '6bb2e724-d9bc-11de-96ec-0021009b6ea3' <object GrtObject> key=owner could not be resolved
_view_impl has NULL ptr at 15
_app_impl has NULL ptr at 5

(mysql-workbench-bin:2634): Gtk-CRITICAL **: gtk_box_pack: assertion `child->parent == NULL' failed

(mysql-workbench-bin:2634): Gtk-CRITICAL **: gtk_box_pack: assertion `child->parent == NULL' failed
** Message: function call error
Traceback (most recent call last):
  File "/usr/lib/mysql-workbench/modules/wb_admin_grt.py", line 199, in openSecurityManager
    tab.wait_server_check(4)
  File "/usr/lib/mysql-workbench/modules/wb_admin_grt.py", line 95, in wait_server_check
    while tab.configuration.last_is_running_check is None and time.time() - t < timeout:
NameError: global name 'tab' is not defined

glibmm-ERROR **: 
unhandled exception (type std::exception) in signal handler:
what: error calling WbAdmin.openSecurityManager: see output for details

aborting...
Aborted
miguel@quetzal3:~$
[3 Dec 2009 22:00] Alfredo Kojima
This feature was purposefuly excluded from this version of Workbench.
Suggest retargetting to WB60.
[3 Dec 2009 22:03] Alfredo Kojima
As for the crash, from what I see in the code it has already been fixed. If crash persists, please file a separate bug.
[9 Dec 2009 13:34] Alfredo Kojima
Workbench does not manage table/column/proc level privileges.
This should be documented so that users are aware of the existence of such 
privileges, although not changeable from Workbench.
[9 Dec 2009 14:02] Todd Farmer
It might also be good to note it on the privilege management screens, directly.
[14 Dec 2009 11:32] Tony Bedford
Updated the main docs to note that WB does not currently support management of privileges below schema level, but will introduce support for this feature in version 6.0.