返回
MongoDB 数据库设置用户前后区别:安全与权限控制是关键
后端
2023-12-13 21:38:37
设置用户前后的区别
在 MongoDB 数据库中,刚安装好的数据库是没有用户和密码的。这意味着任何人都可以访问数据库并进行数据的增删改查。这显然存在极大的安全隐患。
设置用户后,就可以为不同用户分配不同的权限。例如,您可以为某些用户授予读写权限,而只为其他用户授予只读权限。这样,您就可以确保只有授权用户才能访问和修改数据。
此外,设置用户后,还可以启用审计功能。这样,您就可以跟踪谁在何时访问了数据库以及做了什么。这对于确保数据库的安全性和合规性非常重要。
设置用户的步骤
要设置 MongoDB 数据库用户,您可以按照以下步骤操作:
- 登录 MongoDB 数据库。
- 创建一个新用户。您可以使用以下命令:
db.createUser(
{
user: "newuser",
pwd: "password",
roles: [
{
role: "readWrite",
db: "mydb"
}
]
}
)
- 为新用户授予权限。您可以使用以下命令:
db.grantRolesToUser("newuser", [
{
role: "readWrite",
db: "mydb"
}
])
- 测试新用户是否可以访问数据库。您可以使用以下命令:
db.auth("newuser", "password")
如果成功,您将看到以下消息:
MongoDB shell version v4.4.6
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("74bb63f3-9d89-4c41-9d44-6c0f885287d8") }
MongoDB Enterprise > db.auth("newuser", "password")
1
启用审计功能
要启用 MongoDB 数据库的审计功能,您可以按照以下步骤操作:
- 登录 MongoDB 数据库。
- 创建一个新的审计数据库。您可以使用以下命令:
db.createCollection("auditlog")
- 启用审计功能。您可以使用以下命令:
db.auditCommand.insertOne({
"enabled": true,
"destination": "auditlog"
})
- 测试审计功能是否正常工作。您可以使用以下命令:
db.runCommand({
"find": "auditlog",
"filter": {
"type": "auth"
}
})
如果成功,您将看到以下消息:
MongoDB Enterprise > db.runCommand({ "find": "auditlog", "filter": { "type": "auth" } })
{
"cursor" : {
"firstBatch" : [
{
"_id" : ObjectId("62704a3c5c378071483d360c"),
"timestamp" : ISODate("2022-05-11T03:14:36.841Z"),
"type" : "auth",
"address" : "127.0.0.1:61279",
"client" : "127.0.0.1",
"user" : "admin",
"action" : "AUTHENTICATE",
"success" : true
}
]
},
"ok" : 1
}
结论
通过设置用户和启用审计功能,您可以显著提高 MongoDB 数据库的安全性和合规性。这对于保护您的敏感数据免遭未经授权的访问和修改非常重要。