我正在使用MySQL,我需要创build一个帐户,可以连接从本地主机或从另一台服务器,即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';
这工作正常,但有没有更好的方法来创build一个链接到多个IP的用户帐户,还是需要这样做?
我主要担心的是,将来,权限将被更新为'bob'账户,而不是其他账户。
如果您想限制为主机,并且不想使用%
指定基于子网或通配符,那么这是唯一的方法。 更多细节可以在MySQL文档中find 。
我仍然试图find方法来消除pipe理身份validation大型MySQL安装时的开销,还没有find一个完美的解决scheme。
让我们开始在MySQL shell中创build一个名为“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'replace为'bob'。
MySQL允许一行中有多个通配符。 一个可能的解决scheme是为用户Bob
设置主机
locahost/10.1.1.1
参考:
http://dev.mysql.com/doc/refman/5.1/en/connection-access.html