Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我无法创建新的MySQL用户时,如何让某人只访问一些MySQL表?_Mysql_Database_Phpmyadmin_Administration - Fatal编程技术网

当我无法创建新的MySQL用户时,如何让某人只访问一些MySQL表?

当我无法创建新的MySQL用户时,如何让某人只访问一些MySQL表?,mysql,database,phpmyadmin,administration,Mysql,Database,Phpmyadmin,Administration,我正在寻找以下最佳解决方案: 我需要让某人通过PhpMyAdmin或类似工具访问MySQL服务器上的一个(多个)特定数据库 我不允许创建新的MySQL用户帐户 因此,我考虑创建一个隐藏用户名和密码(凭证可能存储在某个表中,甚至直接存储在PMA附近的PHP中),我的某人可以使用它登录到PMA PMA将使用安全存储的真实用户名和密码连接到我的MySQL服务器。但是我的个人永远看不到实际的数据库用户名和密码。他只能在我的服务器上的一个指定数据库中查看和编辑表 这是可以实现的吗?谢谢大家! PMA对此有

我正在寻找以下最佳解决方案:

  • 我需要让某人通过PhpMyAdmin或类似工具访问MySQL服务器上的一个(多个)特定数据库

  • 我不允许创建新的MySQL用户帐户

  • 因此,我考虑创建一个隐藏用户名和密码(凭证可能存储在某个表中,甚至直接存储在PMA附近的PHP中),我的某人可以使用它登录到PMA

  • PMA将使用安全存储的真实用户名和密码连接到我的MySQL服务器。但是我的个人永远看不到实际的数据库用户名和密码。他只能在我的服务器上的一个指定数据库中查看和编辑表


  • 这是可以实现的吗?谢谢大家!

    PMA对此有一个配置

    $cfg['Servers'][$i]['only_db']
    
    请阅读文档中的相关内容:

    但这并不限制用户的权限。它仅使用户界面向用户显示有限的数据库子集。如果他们知道一些其他数据库的名称(或者可以从INFORMATION_SCHEMA.SCHEMATA中查询),他们仍然可以访问这些数据库

    如果您只想对少数几个数据库强制执行权限,则必须创建一个独特的MySQL用户,并使用限制其权限


    您的评论如下:


    听起来您需要将MySQL凭据存储在PMA配置文件中(并将
    $cfg['Servers'][$i]['auth\u type']
    设置为'config')。然后,您可以使用Apache HTTP身份验证来限制对PMA站点(或目录)的访问,并且可以在Apache级别创建多个用户凭据

    phpMyAdmin不是设计成这样工作的;它使用MySQL身份验证结构,而不施加任何额外的登录限制

    您的一部分需求(不共享实际用户名和密码)可以通过使用配置或解决,但这仍然不会对用户在登录后施加任何附加限制,以便他们拥有与您的用户帐户相同的访问权限


    不幸的是,如果您无法创建另一个用户帐户,那么如果不给他们相同的访问级别,就很难共享该帐户。

    是否已经有一个用户帐户具有您所需的有限访问权限?如果不是,步骤4将如何解决问题?他将有权访问存储的用户名可以访问的所有表。如果有这样的帐户,你可以给他用户名和密码。这可能是一个更好的回答这个问题的地方。我同意@Barmar的观点-这与代码无关。对于这个网络区域来说,它太宽了。巴玛:不,没有这样的用户。只有一个MySQL用户名可以访问所有内容,我需要我的新用户只查看MySQL服务器上许多数据库中的一个。我现在和将来都无权创建任何新的MySQL用户名。谢谢你,这对于我需要实现的目标来说已经足够了。我将测试它并将结果写在这里。:)不,我意识到实际上这还不够。我不能给我的新用户MySQL的真实用户名和密码。我需要创建一个单独的用户名和密码,通过它我的新用户可以登录到phpMyAdmin。phpMyAdmin本身将使用“真实”的MySQL用户名和密码连接到MySQL服务器,但它只会向我的用户显示服务器上多个数据库中的一个指定数据库。