MongoDB访问控制方法举例

发布时间:2021-01-16编辑:脚本学堂
本文介绍下,在MongoDB数据库中的访问控制方法,包括绑定IP内网地址访问 MongoDB 服务、设置监听端口、使用用户名与口令登录等,有需要的朋友作个参考吧。

本节内容:
MongogDB访问控制。

使用官方手册中的说明,启动 MongoDB 服务时没有任何参数,一旦客户端连接后可以对数据库任意操作,而且可以远程访问数据库。

在平时的开发阶段可以不设置任何参数,不过用于生产环境时,则务必要考虑安全因素。

以下分享提高 MongoDB 数据库安全的几个方面:
1)、绑定 IP 内网地址访问 MongoDB 服务
2)、设置监听端口
3)、使用用户名和口令登录

下面我们逐一介绍,以帮助大家做好MongoDB数据库的安全访问控制。

1,绑定 IP 内网地址访问 MongoDB 服务
MongoDB 可以限制只允许某一特定 IP 来访问,只要在启动时加一个参数 bind_ip 即可,如下:
 

复制代码 代码示例:
mongod --bind_ip 192.168.1.103

做了如上的限制后:
服务端限制只有 192.168.1.103 这个 IP 可以访问 MongoDB 服务
客户端访问时需要明确指定服务端的 IP ,mongo 192.168.1.102 。

2,设置监听端口
官方默认的监听端口是 27017,为了安全起见,一般都会修改这个监听端口,避免恶意的连接尝试 。
 

复制代码 代码示例:
mongod --bind_ip 192.168.1.103 --port 28018
 

端户访问时不指定端口,会连接到默认端口 27017 。
当服务端指定了端口后,客户端必须要明确指定端口才可以正常访问 。
 

复制代码 代码示例:
Mongo 192.168.1.102:28018

3,使用用户名和口令登录
MongoDB 默认的启动是不验证用户名和密码的,启动 MongoDB 后,可以直接用 MongoDB 连接 上来,对所有的库具有 root 权限。
所以启动时指定参数,可以阻止客户端的访问和连接。

启用系统的登录验证模块, 只需在启动时指定 auth 参数即可,例如:
 

复制代码 代码示例:
mongod –auth

在最初始时 MongoDB 都默认有一个 admin 数据库(默认是空的),而 admin.system.users 中将会保存比在其它数据库中设置的用户权限更大的用户信息。

注意:
admin.system.users 中没有添加任何用户时, 当即使 MongoDB 启动时添加了 --auth 参数, 如果在除 admin 数据库中添加了用户, 此时不进行任何认证依然可以使用任何操作,直到知道在 admin.system.users 中添加了一个用户。

3.1 建立系统 root 用户
 

复制代码 代码示例:
db.addUser("root","111")
db.auth("root","111")

本地客户端连接,指定用户 ,mongo -u root -p

3.2 建立指定权限用户
设一个只读的用户
 

复制代码 代码示例:
user_reader db.addUser("user_reader", "user_pwd", true)

以上通过实例,介绍了MongoDB数据库的访问控制方法,希望对大家有所帮助。