MongoDB 用户管理实践:精简运维(mongodb用户管理)
MongoDB是一款基于分布式文件存储的开源数据库。它是一个非常流行的NoSQL 数据库,能够以文档型存储提供高性能、高可用性和理想的扩展性,使得它可以有效地处理大型数据量,并且可以快速响应应付瞬态流量高峰。
在日常运维过程中,对 MongoDB 的用户管理一直是安全控制的关键环节,用户的管理会影响数据的安全性和被恶意操作的可能性。本文就介绍 MongoDB 用户管理实践,目的是让它更安全可控。
1. 初始化用户
首先,为了保证 MongoDB 用户管理安全可控,需要先设立一个管理员账号,作为管理用户,其他业务账号都在这个管理账号的管理下。启动 MongoDB 的时候,指定用户名和密码,最好是通过参数来配置。如果在 admin 数据库中未部署过管理员用户,则服务器启动后会自动创建一个管理员账号,新用户有完全的读写访问权限,主机名为 localhost,用户名和密码都由 MongoDB 自动生成。
例:
use admin
db.createUser( {
user: “admin”,
pwd: “password”,
roles: [
{ role : “userAdminAnyDatabase”, db: “admin” }
]
} )
2. 使用角色管理权限
MongoDB 支持角色管理,可以通过角色来给用户设置针对某些资源的操作权限。MongoDB 本身提供了很多系统角色,可以让用户拥有一定范围内的权限。比如,可以为某用户设置 read 的角色,只能读取,不能修改和添加数据。或者为某用户设置 readWrite 的角色,可以读取和修改数据。
例:
use admin
db.createUser( {
user: “reader”,
pwd: “readerPwd”,
roles: [
{ role : “read” , db: “admin” }
]
} )
3. 设置IP地址限制
除了设置用户的角色之外,还可以针对用户的IP地址设置限制,以限制用户的操作范围,以免不必要的操作导致安全风险。MongoDB可以指定ip地址,使用该ip地址来登录用户,并进行操作,从而限制用户的操作范围。
例:
use admin
db.createUser( {
user: “reader”,
pwd: “readerPwd”,
roles: [
{ role : “read” ,db: “admin” },
],
“passwordDigestor” : “server” ,
“mechanisms” : [“SCRAM-SHA-1”],
“otherDBRoles” :{ “security”: [“read”]
},
“whitelisting”:{
“aclsource.example.domain”: [
“xx.xx.xx.xx”
]
}
} )
总结:MongoDB 用户管理是运维中必不可少的部分,只有安全可控以及严格的限制,才能保证 MongoDB 的安全性。通过初始化用户,严格使用角色管理权限和设置IP地址限制,可以保证 MongoDB 管理安全可控,精简运维过程。