我们有台数据库环境的地址段是192.168.10.%,机器ip地址是192.168.10.22,我们的开发环境的ip地址段是192.168.11.%,开发人员无法直接访问192.168.10.%地址段,为了让开发人员可以看见这台机器的数据,在一台10.0.0.81的机器做了一个端口映射到192.168.10.22的3306端口,开发环境可以用10.0.0.81 3306访问这个数据库。我在数据库上面建立一个product账户
GRANT SELECT ON *.* TO 'product'@'192.168.11.%' IDENTIFIED BY PASSWORD '*9BD32F9455201E638BEAD8858875A9DF6DAD1ED4'
然后开发人员就可以使用prodcut账户查看数据库的所有数据了。但是奇怪的是为什么这个账户执行
show processlist;可以查看当前所有账户的进程。

解决方案 »

  1.   

    show grants 看下到底是用的哪个用户
      

  2.   

    show processlist;其实是访问的information_schema.processlist这个表
      

  3.   

    show processlist 本来就是可以看所有人的。
      

  4.   

    product账户应该只能看到自己账户的进程吧,不应该看到别的账户进程的啊。
      

  5.   

    product账户应该只能看到自己账户的进程吧,不应该看到别的账户进程的啊
      

  6.   

    但是如果我
    GRANT SELECT ON *.* TO 'product'@'192.168.10.%' IDENTIFIED BY PASSWORD '*9BD32F9455201E638BEAD8858875A9DF6DAD1ED4'
    product账户就只能看到product自己的线程。
      

  7.   

    但是如果我对'product'@'192.168.10.%'授权
    GRANT SELECT ON *.* TO 'product'@'192.168.10.%' IDENTIFIED BY PASSWORD '*9BD32F9455201E638BEAD8858875A9DF6DAD1ED4'
    product账户就只能看到product自己的线程。
      

  8.   

    show processlist是所有人都能看到此进程的。