2011-12-17 98 views
1

我有谁有权访问多个数据库MySQL服务器iemysql分贝,INFORMATION_SCHEMA分贝,测试数据库等删除从用户

上是否有可能限制该用户访问权限的用户查看战略数据库的能力这样一个“SHOW DATABASES”命令甚至不会列出这些战略数据库?

回答

0

每MySQL的数据库显示的文档:

你只能看到你有某种特权,除非你有全局SHOW DATABASES权限的数据库。你也可以使用mysqlshow命令获得这个列表。

如果使用--skip-show-database选项启动服务器,则除非具有SHOW DATABASES权限,否则不能使用此语句。

MySQL将数据库实现为数据目录中的目录,因此此语句仅列出该位置中的目录。但是,输出可能包含与实际数据库不对应的目录名称。

http://dev.mysql.com/doc/refman/5.0/en/show-databases.html

0

您必须设置Show_db_priv

的SHOW DATABASES权限允许账户通过发布SHOW DATABASE语句来看看数据库名。没有此权限的帐户只能看到他们拥有某些权限的数据库,并且如果服务器是使用--skip-show-database选项启动的,则完全不能使用该语句。请注意,任何全局特权都是数据库的特权。

http://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html#priv_show-databases

1

默认情况下,所有用户都可以看到一个information_schema表。它不是真正的表格,而更像是只读视图的集合。对于每个用户,它只显示用户有权访问的表和对象的值。如果您的用户通过phpMyAdmin访问,则可以通过在配置文件中添加一行来隐藏它。事情是这样的......

$cfg['Servers'][$i]['hide_db'] = '^information_schema$'; 

此外,默认情况MySQL允许所有用户看到一个名为“测试”数据库,并以“TEST_”开头的数据库。这些行为由mysql数据库的db表中的行控制。在该表中搜索Db字段中以“test”开头的条目,您将看到它们。他们在Host字段中有一个“%”字段,而在空白User字段中。有关更多信息,请参阅第2.10.2节。在本页的标题为“确保测试数据库安全”下的MySQL文档“保证初始MySQL帐户安全”... http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html