List users of a database

from the Artful Common Queries page




DROP PROCEDURE IF EXISTS ListDbUsers;

DELIMITER |

CREATE PROCEDURE ListDbUsers( dbname CHAR(64) )

  SELECT host,user

  FROM mysql.user

  WHERE Select_priv = 'Y' 

       OR Insert_priv = 'Y' 

     OR Update_priv = 'Y' 

     OR Delete_priv = 'Y' 

     OR Create_priv = 'Y' 

     OR Drop_priv = 'Y' 

     OR Reload_priv = 'Y' 

     OR Shutdown_priv = 'Y' 

     OR Process_priv = 'Y' 

     OR File_priv = 'Y' 

     OR Grant_priv = 'Y' 

     OR References_priv = 'Y' 

     OR Index_priv = 'Y' 

     OR Alter_priv = 'Y' 

     OR Show_db_priv = 'Y' 

     OR Super_priv = 'Y' 

     OR Create_tmp_table_priv = 'Y' 

     OR Lock_tables_priv = 'Y' 

     OR Execute_priv = 'Y' 

     OR Repl_slave_priv = 'Y' 

     OR Repl_client_priv = 'Y' 

     OR Create_view_priv = 'Y' 

     OR Show_view_priv = 'Y' 

     OR Create_routine_priv = 'Y' 

     OR Alter_routine_priv = 'Y' 

     OR Create_user_priv = 'Y' 

     OR Event_priv = 'Y' 

     OR Trigger_priv = 'Y' 

  UNION

  SELECT host,user

  FROM mysql.db

  WHERE db=dbname

    AND (

     Select_priv = 'Y' 

     OR Insert_priv = 'Y' 

     OR Update_priv = 'Y' 

     OR Delete_priv = 'Y' 

     OR Create_priv = 'Y' 

     OR Drop_priv = 'Y' 

     OR Grant_priv = 'Y' 

     OR References_priv = 'Y' 

     OR Index_priv = 'Y' 

     OR Alter_priv = 'Y' 

     OR Create_tmp_table_priv = 'Y' 

     OR Lock_tables_priv = 'Y' 

     OR Create_view_priv = 'Y' 

     OR Show_view_priv = 'Y' 

     OR Create_routine_priv = 'Y' 

     OR Alter_routine_priv = 'Y' 

     OR Execute_priv = 'Y' 

     OR Event_priv = 'Y' 

     OR Trigger_priv = 'Y' 

  )

  UNION

  SELECT host,user

  FROM mysql.tables_priv

  WHERE db=dbname

  UNION

  SELECT host,user

  FROM mysql.columns_priv

  WHERE db=dbname;

|

DELIMITER ;

CALL ListDbUsers( 'test' );




Return to the Artful Common Queries page