2010-03-17 84 views
1

我在客户端使用mysql C++ wrapper连接到mysql服务器。当用户建立到mysql服务器的连接时,我想知道用户是否具有root权限(即GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION)。

SHOW GRANTS FOR CURRENT_USER查询为当前用户提供授权,但我需要解析字符串并进行比较以了解当前用户是否具有root权限。我正在寻找替代选项。我如何检查mysql用户拥有像root用户一样的权限

+0

介意给**一些你的问题答案? – ajreal 2010-12-17 20:48:38

回答

0

您可以查询mysql。*中的各个表并比较帐户之间的权限字段。当然,你必须考虑主机/用户字段中的差异,因为MySQL认为root @ localhost是一个完全不同于root @%和[email protected]等的帐号。

select * from mysql.TABLE其中User('root','youraccount','someotheraccount');

其中表是“用户”,“数据库”,“功能”,等...

+1

这比SHOW GRANTS更容易解析,但是您需要读取mysql数据库 - 这可能是也可能不是缺点。 – titanoboa 2010-03-18 10:26:17

0

为什么不执行测试行动,将只能由一个“根”超级用户来完成..如果失败了,你运气不好,但是如果它运作正常,你会做生意?