MySQL:创建一个可以从多个主机连接的用户

DrS*_*ker 42 mysql networking permissions database database-administration

我正在使用 MySQL,我需要创建一个可以从本地主机或其他服务器(即 10.1.1.1)连接的帐户。所以我在做:

CREATE USER 'bob'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'bob'@'10.1.1.1' IDENTIFIED BY 'password123';
GRANT SELECT, INSERT, UPDATE, DELETE on MyDatabse.* to 'bob'@'localhost', 'bob'@'10.1.1.1';
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是有没有更优雅的方法来创建链接到多个 IP 的用户帐户,或者是否需要以这种方式完成?

我主要担心的是,将来,将更新一个“bob”帐户的权限,而不是另一个。

War*_*ner 31

如果您想限制到主机并且不想使用 指定基于子网或通配符%,这是唯一的方法。MySQL 文档中提供了更多详细信息。

在管理大型 MySQL 安装的身份验证时,我仍在尝试寻找消除开销的方法,但尚未找到完美的解决方案。


Cha*_*ara 16

让我们从在 MySQL shell 中创建一个名为“chaminda”的新用户开始:

CREATE USER 'chaminda'@'%' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)

首先要做的是为用户提供必要的权限,在这里我已将所有权限授予特定用户。

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'%';
Run Code Online (Sandbox Code Playgroud)

重新加载所有权限。

FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

如果您想允许特定用户使用 IP 范围,请使用如下 10.1.1.%

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'10.1.1.%';
Run Code Online (Sandbox Code Playgroud)

注意: 这里的主机名 = %,这意味着您可以从任何主机访问此数据库服务器。将所有权限授予用户是一个很大的风险,这不是最佳实践。此外,您可以将用户“chaminda”替换为“bob”。

  • 这不能回答问题。它授予来自所有 IP 的用户访问权限,但 OP 正在询问一种更优雅的方式来允许单个用户从 IP 列表访问数据库。基本上,不是使用多个语句从多​​个 IP 多次添加用户,而是添加一个可以从多个 IP 访问数据库的用户,这使得管理更容易,更不容易出错。 (8认同)