我正在尝试创建一个只能访问一个数据库的数据库用户。 在该数据库上,用户可以:
这是我所做的:
db.createRole(
{
role: "readAnyOnlyAndInsertHistory",
privileges: [
{ resource: { db: "testDB", collection : "" }, actions: [ "find" ] },
{ resource: { db: "testDB", collection: "history" }, actions: [ "insert" ] },
],
roles: []
}
);
db.createUser({ user: "toto", pwd: "toto", roles: [{ role: "readAnyOnlyAndInsertHistory", db: "testDB" }]});
在此示例中,用户只能访问testDB。它可以在所有集合中找到,但只能插入历史记录中。
但是我可以做我想做的...切换数据库,删除和更新其他集合。
你有什么主意吗?
> db.runCommand({connectionStatus : 1})
{
"authInfo" : {
"authenticatedUsers" : [
{
"user" : "toto",
"db" : "admin"
}
],
"authenticatedUserRoles" : [
{
"role" : "readAnyOnlyAndInsertHistory",
"db" : "testDB"
}
]
},
"ok" : 1
}