如何为多个用户配置phpMyAdmin - 每个用户只能访问其数据库

时间:2010-09-08 12:20:43

标签: database login phpmyadmin

我想配置phpMyAdmin以便能够接受多个不同的用户帐户登录之一。每个用户都将被分配一个特定的数据库,并且只能访问该数据库。

phpMyAdmin的默认配置是一个超级用户,例如root,可以访问服务器上的每个数据库。

我需要能够让人们访问某些数据库,但不是全部。

你能不能

  1. 提供解决方案
  2. 使用下面的现有解决方案对我的调查结果进行评论,必须对其进行调整才能正常工作
  3. 以下解决方案有效 - 附加步骤(如下所述): http://alandoyle.com/tutorials/configuring-phpmyadmin-for-multiple-users/

    其他步骤首先假设你已经设置了一个mysql用户和密码,例如'anotheruser'并将此用户与数据库相关联 - 即将此用户添加到可以访问该数据库的用户列表中。

    第二个额外的步骤是再次运行上述解决方案页面中引用的SQL查询块(在已经运行一次之后,按照原始文本中的说明,几乎是引用的(显然确保使用了正确的密码) ))但这次是您想要访问的实际用户。因此,如果您的用户名是“anotheruser”,那么您将pma替换为另一个用户,将pmapassword替换为另一个用户的密码。

    因此,除了所有说明之外,这似乎也有效。然后,每次添加新用户时,都必须为新用户运行相同的SQL查询。但我从解决方案得到的印象是,这是一个一次性的SQL查询,支持添加任意数量的用户,并通过phpmyadmin ui将它们添加到数据库。想法?

    其他解决方案在SO上看(但不是我需要的):

2 个答案:

答案 0 :(得分:1)

使用此

  $cfg['Servers'][$i]['auth_type'] = 'cookie';

取代

  $cfg['Servers'][$i]['auth_type'] = 'config';
在你的config.inc.php中启动

并重新启动服务,然后将为所有用户启动身份验证过程,他们可以根据授权进行工作。

答案 1 :(得分:0)

如果要添加定义了用户和密码的其他主机,可以在config.inc.php上添加下一行

第一个参数auth_type元素设置为cookie

$cfg['Servers'][$i]['auth_type'] = 'cookie';

并且第二个连接更改为config(增加i变量)

$i++;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'user';
$cfg['Servers'][$i]['password'] = 'password';
$cfg['Servers'][$i]['host'] = 'anotherhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';