本节内容:
MongogDB访问控制。
使用官方手册中的说明,启动 MongoDB 服务时没有任何参数,一旦客户端连接后可以对数据库任意操作,而且可以远程访问数据库。
在平时的开发阶段可以不设置任何参数,不过用于生产环境时,则务必要考虑安全因素。
以下分享提高 MongoDB 数据库安全的几个方面:
1)、绑定 IP 内网地址访问 MongoDB 服务
2)、设置监听端口
3)、使用用户名和口令登录
下面我们逐一介绍,以帮助大家做好MongoDB数据库的安全访问控制。
1,绑定 IP 内网地址访问 MongoDB 服务
MongoDB 可以限制只允许某一特定 IP 来访问,只要在启动时加一个参数 bind_ip 即可,如下:
做了如上的限制后:
服务端限制只有 192.168.1.103 这个 IP 可以访问 MongoDB 服务
客户端访问时需要明确指定服务端的 IP ,mongo 192.168.1.102 。
2,设置监听端口
官方默认的监听端口是 27017,为了安全起见,一般都会修改这个监听端口,避免恶意的连接尝试 。
端户访问时不指定端口,会连接到默认端口 27017 。
当服务端指定了端口后,客户端必须要明确指定端口才可以正常访问 。
3,使用用户名和口令登录
MongoDB 默认的启动是不验证用户名和密码的,启动 MongoDB 后,可以直接用 MongoDB 连接 上来,对所有的库具有 root 权限。
所以启动时指定参数,可以阻止客户端的访问和连接。
启用系统的登录验证模块, 只需在启动时指定 auth 参数即可,例如:
在最初始时 MongoDB 都默认有一个 admin 数据库(默认是空的),而 admin.system.users 中将会保存比在其它数据库中设置的用户权限更大的用户信息。
注意:
admin.system.users 中没有添加任何用户时, 当即使 MongoDB 启动时添加了 --auth 参数, 如果在除 admin 数据库中添加了用户, 此时不进行任何认证依然可以使用任何操作,直到知道在 admin.system.users 中添加了一个用户。
3.1 建立系统 root 用户
本地客户端连接,指定用户 ,mongo -u root -p
3.2 建立指定权限用户
设一个只读的用户
以上通过实例,介绍了MongoDB数据库的访问控制方法,希望对大家有所帮助。