【问题标题】:MySQL Multiple Database SetupMySQL 多数据库设置
【发布时间】:2015-01-04 15:49:55
【问题描述】:

我已经搜索了这个问题的答案,但我似乎只能找到一些问题,即在单个数据库中使用多个数据库还是多个表更好。不过这不是我的问题。

问题 1.
我想在我当前的数据库旁边建立一个新数据库,但不知道如何。我想在不查看 DB1 的情况下授予用户对 DB2 的完全管理员访问权限。通过这种方式,我可以托管朋友的网站,他们可以根据需要创建和删除任意数量的表,而不会干扰我自己的数据库。我也可以将它用于不安全且不应存在于我的主数据库中的演示站点。

我认为我可以很容易地使用虚拟机并运行一个单独的 MySQL 实例,但我的资源有限,所以这不是一个真正的选择。

我想通过以下两种方式之一进行设置。我希望让“server.example.com”托管两个数据库并根据用户登录打开正确的数据库。如果没有,我可以将它路由到 server1.example.com 和 server2.example.com。

问题 2.
如果这不可能,我想知道如何在 sequel pro 中正确设置对单个数据库的受限访问。我一直在搞乱它,到目前为止更喜欢它而不是 PHPMyAdmin。出于某种原因,如果我设置了一个没有权限的新用户,他们可以完全访问我的“information_schema”和“test”表,但不能创建新表。我不希望其他用户访问这些表,但我希望他们能够设置自己的表。我想设置它,以便新用户可以创建有限数量的表,并且只能查看和编辑这些表。我似乎也找不到这方面的信息。

即使我的第一个问题是可能的,我也想知道问题 2 的答案。我已经搜索了很长时间,但在任何地方都找不到可靠的信息。可能我只是累了……

【问题讨论】:

    标签: mysql database phpmyadmin multiple-databases


    【解决方案1】:

    您可以设置多个 mysql 实例,但根据您的情况,您最好在同一实例中创建不同的数据库。

    您可以创建数据库,然后添加仅有权操作给定数据库的用户,而没有其他权限。

    基本上层次如下:

    Mysql (root or any other super user can see everything)
    - Your DB
      - Your Users
        - Your tables/functions/Procedures/etc
    - Their DB
      - Their Users
        - Their tables/functions/procedures/etc.
    

    您基本上将每个访问权限分开,并且在 PHPMyAdmin 中这很容易。步骤是:

    1. 添加数据库)
    2. 添加用户,将他们限制在该数据库中,只允许您想授予该用户的权限,并且只允许该数据库。 (Guide here)

    【讨论】:

    • 酷。这看起来真的很容易。我午饭后试试看。
    • 是的,即使在控制台中也不难。您基本上遵循相同的程序。
    【解决方案2】:

    您可以在 MySQL 中使用 GRANT 将不同数据库的访问权限授予不同的用户。

    https://dev.mysql.com/doc/refman/5.1/en/grant.html 有您需要的信息。

    你能做的最简单的就是

    CREATE DATABASE db_for_user_a
    CREATE DATABASE db_for_user_b
    GRANT ALL PRIVILEGES ON db_for_user_a.* TO user_a IDENTIFIED BY 'user_a_s_password'
    GRANT ALL PRIVILEGES ON db_for_user_b.* TO user_a IDENTIFIED BY 'user_b_s_password'
    

    【讨论】:

      【解决方案3】:

      您将需要提供有关您的设置的更多信息,以回答专门设置多个数据库的问题。

      服务器通常具有使用专门设计用于在这些平台上运行的软件创建多个数据库的方法(Apache 和 Windows 服务器是一对可以运行 WAMP 或 phpMyAdmin 等软件来管理这些数据库的服务器)。

      对于权限的回答:是的,您可以指定对一个、两个或一个数据库都没有特定权限的用户。但是,您也可以设置特定于表的角色和操作。不过,这在 Microsoft 的管理工作室中更为明显,您最初可能希望在其中使用 Mysql Workbench 之类的东西。

      例如,在 cPanel 上,如果您的主机允许,您可以添加一个新数据库。在 Windows 上,您必须使用其他工具来设置新数据库。

      在回答您的第一个问题时,每个数据库都需要自己的连接,并且您可以执行数据库范围的操作,例如迁移和备份。经验法则是只将完全独立的数据保存在不同的数据库中,除非绝对有理由将信息类型分成不同的种类数据库以提高效率。通常,您不会在不同数据库之间关联数据,除非是更复杂的情况。

      我相信,您可以创建单独的数据库并在 sequel pro 中单独使用它们。大多数平台都有在数据库列表中创建新数据库的选项。

      【讨论】:

        【解决方案4】:

        好吧,我想我在这里混淆了一些东西。我为此道歉。我称数据库为“表”。

        我希望允许用户创建新数据库,但看不到其他人创建的数据库。我想我可以通过限制权限并允许用户访问一两个数据库来完成这项工作。

        似乎 PHPMyAdmin 比 Sequel Pro 有一些更容易使用的选项。我过去只是简单地使用过它,但我会再试一次。

        至于命令行的东西,我喜欢能够在命令行中工作,但我不知道所有的命令,所以这通常会让事情变得难以理解,而且手册页也不是很有帮助。

        感谢您的回答,对于我的新手问题,我深表歉意。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-12-26
          • 1970-01-01
          • 1970-01-01
          • 2020-08-29
          • 2017-04-11
          • 2016-10-07
          • 2011-07-27
          • 2012-12-27
          相关资源
          最近更新 更多