запретить удаление из коллекции привилегий - PullRequest
0 голосов
/ 08 июня 2019

Я хочу разрешить определенным пользователям обновлять и вставлять, но не удалять. Я создал следующую роль

    db.createRole({
    role: "readWriteNoDelete",
    privileges: [{
        resource: {
            db: "permitmanager",
            collection: ""
        },
        actions: ["insert", "update"]
    }],
    roles: [{
        role: "read",
        db: "permitmanager"
    }]
})

Я назначил его текущему пользователю, подтвердив это:

> db.runCommand({connectionStatus : 1})
{
"authInfo" : {
    "authenticatedUsers" : [
        {
            "user" : "defaultuser",
            "db" : "admin"
        }
    ],
    "authenticatedUserRoles" : [
        {
            "role" : "read",
            "db" : "permitmanager"
        },
        {
            "role" : "readWriteNoDelete",
            "db" : "permitmanager"
        }
    ]
},
"ok" : 1
}

Тем не менее, я все еще могу удалить из коллекции с помощью allowmanager:

> db
permitmanager
> db.leads.remove({"estDollarAmount": 0})
WriteResult({ "nRemoved" : 1 })

Чего мне не хватает? Я думаю, что если бы действие «удалить» не присутствовало в их привилегиях, они не смогли бы сделать это

1 Ответ

0 голосов
/ 08 июня 2019

Оказывается, аутентификация не была включена в базе данных (добавьте --auth к команде запуска mongod)

...