【发布时间】:2015-05-15 16:48:18
【问题描述】:
我们在不同的服务器上大约有 10 个数据库(并且还在增加),我们必须非常快速地管理和跳转,而且每次访问每台服务器时都连续输入每个服务器的密码变得非常低效。
我想实现对 phpMyAdmin 的全局用户名/密码访问。我已经尝试使用我们的 Intranet 现有的用户身份验证过程,它使用 PHP 会话,但这会干扰 phpMyAdmin 对会话的使用。
有没有办法可以做到这一点?插件? PMA 代码中是否有我需要注意的协议?
基本上,我已经尝试在config.inc.php 中插入它,但它只是被忽略了:
if ( isset ( $_SESSION["myIntranetAuth"] ) and $_SESSION["myIntranetAuth"] == true)
{
$cfg['Servers'][$i]['host'] = 'remote.database.server.net';
$cfg['Servers'][$i]['user'] = 'database1';
$cfg['Servers'][$i]['password'] = 'Password123';
// etc - for all servers/databases
}
我也尝试在 phpMyAdmin 的 index.php 顶部插入它,但它也被忽略了:
if ( ! isset ( $_SESSION["myIntranetAuth"] ) or $_SESSION["myIntranetAuth"] != TRUE )
{
exit ( header( "Location: https://myintranet.com/login" ) );
}
我什至在这两种情况下都包含了if( session_id() == "" ) session_start();,但它告诉我:
致命错误:main():脚本试图执行方法或访问不完整对象的属性。请确保您尝试操作的对象的类定义“PMA_Theme_Manager”已加载在 unserialize() 被调用或提供 __autoload() 函数以在 /usr/www 中加载类定义/users/me/myintranet.com/pma/libraries/common.inc.php 在第 686 行
我在打一场失败的战斗吗?
【问题讨论】:
-
wiki.phpmyadmin.net/pma/Auth_types 猜你需要像单点登录这样的东西
-
就个人而言,我根本不会使用 phpMyAdmin。有几个很好的数据库管理产品,比如 Navicat/TOAD/HEIDI,当然还有 MySQL Workbench 本身mysql.com/products/workbench。使用其中之一来管理您的服务器和数据库。所有这些都允许您存储每个连接的登录信息并打开多个服务器的连接。
-
@DavidSoussan:不幸的是,目前成本是我们的一个因素。我一直在使用 Active Database Software 的一款名为 FlySpeed SQL Query 的优秀产品,但试用/免费版本有很多限制。所以它现在必须是一个免费的选择。
-
mysql 工作台是免费的,TOAD 和 HEIDI 也是免费的。检查出来。
标签: php mysql phpmyadmin