phpMyAdmin4 多用户环境中的 Howto disable/hide Navigation-Tab 'Status'
Howto disable/hide Navigation-Tab 'Status' in phpMyAdmin4 multi-user environment
我需要在 phpMyAdmin4 多用户环境中禁用导航选项卡 'Status'。 This post 解释了如何操作,但它似乎适用于以前版本的 phpMyAdmin。
如上文所述link 应该有一个名为'server_links.inc.php' 的文件。在 'usr/share/phpmyadmin/libraries/' 下不存在这样的文件...这些是我的 server_* 文件:
- server_bin_log.lib.php
- server_collations.lib.php
- server_common.inc.php
- server_common.lib.php
- server_databases.lib.php
- server_engines.lib.php
- server_plugins.lib.php
- server_privileges.lib.php
- server_status.lib.php
- server_status_advisor.lib.php
- server_status_monitor.lib.php
- server_status_queries.lib.php
- server_status_variables.lib.php
- server_user_groups.lib.php
- server_users.lib.php
- server_variables.lib.php
选项卡导航存储在哪个文件中?
我如何 disable/hide 'Status'-Tab?
隐藏 'Status'-Tab 后,如何限制对 SQL 查询的访问,例如 'SHOW STATUS'?
如果您想在不接触代码的情况下更改菜单选项卡,用户组功能可以做到这一点;参见 http://docs.phpmyadmin.net/en/latest/config.html?highlight=usergroup#cfg_Servers_usergroups。
您也可以更改代码,在libraries/Menu.class.php.
这是我在 /phpmyadmin/libraries/Menu 中隐藏选项卡 'Status' 的工作代码。class.php:
if ($is_superuser) {
$tabs['status']['icon'] = 's_status.png';
$tabs['status']['link'] = 'server_status.php';
$tabs['status']['text'] = __('Status');
$tabs['status']['active'] = in_array(
basename($GLOBALS['PMA_PHP_SELF']),
array(
'server_status.php',
'server_status_advisor.php',
'server_status_monitor.php',
'server_status_queries.php',
'server_status_variables.php'
)
);
}
这是我在 /phpmyadmin/server_status.php 中的工作代码,如果不是超级用户则拒绝访问:
if (!$GLOBALS['dbi']->isSuperuser()) {
$msg = PMA_Message::error(__('No Privileges'));
$msg->display();
exit;
}
注意属于server_status.php的其他文件也应该包含超级用户检查,这样就没有人可以直接访问这些文件:
'server_status_advisor.php',
'server_status_monitor.php',
'server_status_queries.php',
'server_status_variables.php'.
对于最新的 phpmyadmin,您可以在
libraries/classes/menu.php
参考函数_getMenu()
if (strlen((string) $this->_table) > 0) {
$tabs = $this->_getTableTabs();
$url_params['db'] = $this->_db;
$url_params['table'] = $this->_table;
$level = 'table';
} elseif (strlen($this->_db) > 0) {
$tabs = $this->_getDbTabs();
$url_params['db'] = $this->_db;
$level = 'db';
} else {
$tabs = $this->_getServerTabs();
$level = 'server';
}
然后您可以修改您想要的菜单,比如编辑菜单 table 选项卡,然后编辑功能 _getTableTabs
。例如。你想让菜单导出永久隐藏然后在下面注释这段代码
$tabs['export']['icon'] = 'b_tblexport';
$tabs['export']['link'] = 'tbl_export.php';
$tabs['export']['args']['single_table'] = 'true';
$tabs['export']['text'] = __('Export');
PS。此解决方案仅用于永久隐藏
我需要在 phpMyAdmin4 多用户环境中禁用导航选项卡 'Status'。 This post 解释了如何操作,但它似乎适用于以前版本的 phpMyAdmin。
如上文所述link 应该有一个名为'server_links.inc.php' 的文件。在 'usr/share/phpmyadmin/libraries/' 下不存在这样的文件...这些是我的 server_* 文件:
- server_bin_log.lib.php
- server_collations.lib.php
- server_common.inc.php
- server_common.lib.php
- server_databases.lib.php
- server_engines.lib.php
- server_plugins.lib.php
- server_privileges.lib.php
- server_status.lib.php
- server_status_advisor.lib.php
- server_status_monitor.lib.php
- server_status_queries.lib.php
- server_status_variables.lib.php
- server_user_groups.lib.php
- server_users.lib.php
- server_variables.lib.php
选项卡导航存储在哪个文件中? 我如何 disable/hide 'Status'-Tab? 隐藏 'Status'-Tab 后,如何限制对 SQL 查询的访问,例如 'SHOW STATUS'?
如果您想在不接触代码的情况下更改菜单选项卡,用户组功能可以做到这一点;参见 http://docs.phpmyadmin.net/en/latest/config.html?highlight=usergroup#cfg_Servers_usergroups。
您也可以更改代码,在libraries/Menu.class.php.
这是我在 /phpmyadmin/libraries/Menu 中隐藏选项卡 'Status' 的工作代码。class.php:
if ($is_superuser) {
$tabs['status']['icon'] = 's_status.png';
$tabs['status']['link'] = 'server_status.php';
$tabs['status']['text'] = __('Status');
$tabs['status']['active'] = in_array(
basename($GLOBALS['PMA_PHP_SELF']),
array(
'server_status.php',
'server_status_advisor.php',
'server_status_monitor.php',
'server_status_queries.php',
'server_status_variables.php'
)
);
}
这是我在 /phpmyadmin/server_status.php 中的工作代码,如果不是超级用户则拒绝访问:
if (!$GLOBALS['dbi']->isSuperuser()) {
$msg = PMA_Message::error(__('No Privileges'));
$msg->display();
exit;
}
注意属于server_status.php的其他文件也应该包含超级用户检查,这样就没有人可以直接访问这些文件:
'server_status_advisor.php',
'server_status_monitor.php',
'server_status_queries.php',
'server_status_variables.php'.
对于最新的 phpmyadmin,您可以在
libraries/classes/menu.php
参考函数_getMenu()
if (strlen((string) $this->_table) > 0) {
$tabs = $this->_getTableTabs();
$url_params['db'] = $this->_db;
$url_params['table'] = $this->_table;
$level = 'table';
} elseif (strlen($this->_db) > 0) {
$tabs = $this->_getDbTabs();
$url_params['db'] = $this->_db;
$level = 'db';
} else {
$tabs = $this->_getServerTabs();
$level = 'server';
}
然后您可以修改您想要的菜单,比如编辑菜单 table 选项卡,然后编辑功能 _getTableTabs
。例如。你想让菜单导出永久隐藏然后在下面注释这段代码
$tabs['export']['icon'] = 'b_tblexport';
$tabs['export']['link'] = 'tbl_export.php';
$tabs['export']['args']['single_table'] = 'true';
$tabs['export']['text'] = __('Export');
PS。此解决方案仅用于永久隐藏