共计 825 个字符,预计需要花费 3 分钟才能阅读完成。
2017 年下半年新发布的 MongoDB 3.6 版本在安全性上做了很大提升,主要归结为两点:
1. 将将bind_ip 默认值修改为了 localhost;
2. 在 db.createUser()和 db.updateUser()中添加了authenticationRestrictions 参数,可以用来控制 Client 端发来的请求源 IP 以及请求的 Server 端指定 IP。
以下说明和测试主要是针对第一点。
以前的版本默认 Mongo 服务启动后,使用 Server IP 可以直接登入,但是 3.6 已将服务启动 bind_ip 的默认值限定为 localhost。
因此,即使在 Local Server 使用 ServerIP 登入也会报错。
< 图 1 >
只能使用 localhost 登入
< 图 2 >
修改方式,修改 conf 配置文件,调整 bind_ip 参数,将本地 IP 赋予此参数。赋予后使用 Server IP 登入可以,但此时使用 localhost 失败。为了同时兼容 2 种登入方式,将参数的赋值调整为:
bind_ip=localhost,172.XXX.XXX.XXX
中间使用登号隔开。
< 图 3 > 验证说明采用上述参数配置后 2 种登入方式都可以。
< 图 3 >
说明:(1) 如果不想做 IP 限制,可以将 bind_ip 赋值为 0.0.0.0 或者 在配置文件中启用另外一个参数 bind_ip_all,将其设置为 true。
以上两种设置都可以满足 localhost 登入和指定 ServerIP 登入。当指定 bind_ip_all 参数时,配置文件中可以没有 bind_ip 参数。
(2)登入默认的数据库不同。在 3.6 版本,默认的连接数据库变成了 test,而 3.4/3.2 版本默认是 admin 库。所以,在设置具有 root 权限的管理员账号时,请先转至 admin 下操作(因为账号的查询,系统只有在 admin 才可以查询,所以 root 权限的账号,建议在 admin 库创建,用户数据库的账号,转到用户数据库下创建)。账号的删除一定要在归属库下删除。
: