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 库创建, 用户数据库的账号, 转到用户数据库下创建). 账号的删除一定要在归属库下删除.
来源: http://www.linuxidc.com/Linux/2018-11/155608.htm