我只想让某一用户有mysql的查询权限(仅查询ariticle,article_2,article_3三张表的权限),即SELECT create_time,content,url FROM article where ORIG_TIME>='2009-04-01' ;
但当我grant select on mydb.article to chaxun@localhost identified by "chaxun_123";
然后以chaxun用户查询article表时,总是提示access denied for "chaxun@localhost",为什么?
如何做可以实现我的想法?

解决方案 »

  1.   

    先用 select current_user(); 看一下当前用户的信息。
    然后到
    mysql.user
    mysql.db
    mydql.tables_priv显示一下这个用户的信息。 
    或者贴出这些信息,大家可以帮你分析一下。
      

  2.   

    重新连接 MySQL 没有?
    用户只有重新连接 MySQL 数据库,权限才能生效。 
      

  3.   

    表一级的权限,在下次用户查询时即生效。connection 级的权限才是在下次连接才生效。
      

  4.   

    楼主好,我按楼主说的试一下,都OK的.
    1.用户[amy]进入数据库[amy],密码111111,建表article 
    mysql -u amy -p111111 wdd
    mysql> create table article (id int, create_time date, content text, url varchar(255), ORIG_TIME date);
    Query OK, 0 rows affected (0.00 sec)
    2.用户[root]进入数据库[amy],密码222222,给用户[chaxun]授权
    mysql -u root -p222222 amy
    mysql> grant select on amy.article to chaxun@localhost identified by "chaxun_123";
    Query OK, 0 rows affected (0.00 sec)
    3.用户[root]进入数据库[amy],查询表[article]
    mysql -u chaxun -pchaxun_123 amy  
    mysql> SELECT create_time,content,url FROM article where ORIG_TIME>='2009-04-01' ; 
    Empty set (0.01 sec)都是正常的啊,不知道你哪里出问题了.