mysql> grant all privileges on *.* to b@'%'  identified by 'b' with grant option;
Query OK, 0 rows affected (0.00 sec)mysql> revoke all on atest.* from b@'%';
ERROR 1141 (42000): There is no such grant defined for user 'b' on host '%'
mysql>如何回收用户 b 的一个数据库权限?

解决方案 »

  1.   

    不能这么操作,revoke 必须和 grant 相对应,当初怎么grant 的,就必须怎么 revoke.你的这种功能需要直接操作系统的授权表,无法直接通过 grant 命令实现。
      

  2.   

    按如下操作revoke ALL PRIVILEGES ON *.* FROM to b@'%';
    insert db values ('%','%','b','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
    insert db values ('%','atest','b','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N');
    FLUSH PRIVILEGES;然后b用户重新登录。
    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
      

  3.   

    revoke ALL PRIVILEGES ON *.* FROM b@'%';