我的mysql版本是5.0.18的。我grant一个用户peter@localhost所有权限。
现在使用revoke select on *.* from peter@localhost;
flush privileges;
结果还是可以用peter登录,而且可以查询数据库中的内容。这是怎么回事?

解决方案 »

  1.   

    贴出你的
    show grants for peter@'localhost';
    结果
      

  2.   

    我的结果是:
    GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'peter'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257'
      

  3.   

    你必须
    revoke insert,update,delete,create,drop,....,create user on *.* from 'perter'@'localhost';
    才行。
    因为你先前只是去掉了一个SELECT 权限。其他权限照样还在。所以能登陆是很正常的事 。完了后记得flush privileges;