The "super" privilege is global, and is not tied to a specific database.
Running "revoke super on *.* from 'user'@'%'" will do the trick. If it does not remove anything, then they did not have the privilege to begin with.
I.e. a user with all privileges on a specific database, but no other global privileges (i.e. super), would look like:
mysql> show grants for test;
+---------------------------------------------------+
| Grants for test@% |
+---------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%' |
| GRANT ALL PRIVILEGES ON `percona`.* TO 'test'@'%' |
+---------------------------------------------------+
2 rows in set (0.00 sec)
Versus with the super privilege:
mysql> show grants for test;
+---------------------------------------------------+
| Grants for test@% |
+---------------------------------------------------+
| GRANT SUPER ON *.* TO 'test'@'%' |
| GRANT ALL PRIVILEGES ON `percona`.* TO 'test'@'%' |
+---------------------------------------------------+
2 rows in set (0.00 sec)
You can verify who actually has the super privilege still by running:
select user,host from mysql.user where Super_priv = 'Y' \G
--
Scott Nemes
MySQL DBA
http://www.linkedin.com/in/scottnemes
http://www.twitter.com/ScottNemes