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


30

我正在使用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';

这可以很好地工作,但是有没有更优雅的方法来创建链接到多个IP的用户帐户,还是需要这种方式?

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

Answers:


20

如果要限制为主机,并且不想使用来基于子网或通配符进行指定%,那是唯一的方法。更多详细信息,请参见MySQL文档

我仍在设法消除管理大型MySQL安装的身份验证时的开销,并且还没有找到理想的解决方案。


8

首先,在MySQL Shell中创建一个名为“ chaminda”的新用户:

CREATE USER 'chaminda'@'%' IDENTIFIED BY 'password';

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

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'%';

重新加载所有特权。

FLUSH PRIVILEGES;

如果要允许特定用户使用IP,请按照以下10.1.1。%

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'10.1.1.%';

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


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

您也可以使用_作为10.1.1.1__之类的通配符来匹配100 -199,但是对于200,您需要创建一个单独的帐户或使用%通配符,并且还包括0-99和201-255
Chaminda Bandara

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.