MySQL 多数据库设置

问题描述 投票:0回答:4

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

问题 1.
我想在当前数据库旁边设置一个新数据库,但不知道如何操作。我想授予用户对 DB2 的完全管理员访问权限,而无需看到 DB1。这样我就可以托管朋友的网站,他们可以创建和删除任意数量的表,而不会干扰我自己的数据库。我还可以将它用于不安全且不应该存在于我的主数据库中的演示站点。

我认为我可以使用虚拟机轻松完成此操作并运行单独的 MySQL 实例,但我的资源有限,因此这并不是一个真正的选择。

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

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

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

mysql multiple-databases
4个回答
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. 添加数据库enter image description here
  2. 添加用户,将其限制为该数据库,仅允许您想要授予该用户且仅授予该数据库的权限。 (这里有指南

1
投票

您可以使用 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'

0
投票

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

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

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

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

回答您的第一个询问,每个数据库都需要自己的连接,并且您可以执行数据库范围的操作,例如迁移和备份。经验法则是只在不同的数据库中保留完全独立的数据,除非绝对有理由将信息类型分离到不同“种类”的数据库中以提高效率。通常,除了更复杂的情况之外,您不会在不同数据库之间关联数据。 我相信,您可以创建单独的数据库并在sequel pro中单独使用它们。大多数平台都可以选择在数据库列表中创建新数据库。


0
投票

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

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

至于命令行的东西,我喜欢能够在命令行中工作,但我不知道所有的命令,所以这使得事情通常很难弄清楚,而且手册页也没有那么有帮助。

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

© www.soinside.com 2019 - 2024. All rights reserved.