安装了mysql5
建立了一个test用户,给这个用户分配了只可以访问test数据库的权限
但在链接数据库的时候 也是可以链接到 information_schema 这个数据库的,别的数据库链接不了
请问这个是怎么回事?
我查询mysql数据库db表,里面给test用户的权限只有test这个数据库。感觉有点奇怪。
想让test用户,只可以访问test数据库,这个要怎么去设置?请大侠指点,谢谢!

解决方案 »

  1.   

    INFORMATION_SCHEMA提供了访问数据库元数据的方式。元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。INFORMATION_SCHEMA是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。每位MySQL用户均有权访问这些表,但仅限于表中的特定行,在这类行中含有用户具有恰当访问权限的对象。如果不想在phpMyAdmin中显示的话只需要设置在config.inc.php(有的是config.default.php)中设置这样一句
      

  2.   

    如果不想在phpMyAdmin中显示的话只需要设置在config.inc.php(有的是config.default.php)中设置这样一句 $cfg['Servers'][$i]['hide_db']       = 'information_schema';
      

  3.   

    我是用客户端链接的mysql,没有用phpMyAdmin
    想不要在客户端里面显示这个INFORMATION_SCHEMA 这个数据库要怎么做呢?
      

  4.   

    要怎么给用户分配权限才可以不让用户看到information_schema这个数据库呢?
      

  5.   

    客户端有很多种,常用的有两个:
    1.SQLyog
      这种客户端如果不想看到这个“information_schema”,在设置用户名密码的时候,有个DataBase(s),在其中指定你需要访问的db就可以了。
      但这样就只能看一个,不知道如果在这里面使用“;”隔开会不会生效,没有试过。
    2.MySQL-front
      这种客户端如果不想看到这个“information_schema”,在设置的Login选项卡中,用户名密码的下面,也有一个DataBase,指定就可以了。