Почему пользователь MongoDB с единственной привилегией «найти» может вставлять и обновлять коллекцию? - PullRequest
0 голосов
/ 24 октября 2019

Я хочу, чтобы у моего пользователя была только find привилегия действия для определенной коллекции. Однако, когда я создаю пользователя с привилегией, перезапускаю сервер mongod и снова запускаю оболочку mongo с параметрами -u -p и --authenticationDatabase и запускаю команду insert в коллекции, он успешно вставляет документв коллекции. Аналогично, команда update также работает без проблем для этого пользователя и соответствующей коллекции.

Вот код для создания пользователя -

use testauth
db.createUser({user: "user", pwd: "password", roles: [{role: "readWrite", db: "testauth", privileges: [{resource: {db: "testauth", collection: "readonlycol"}, actions: ["find"]}]}]})

После этого я перезагружаю сервер mongod с помощью --auth и запускаю оболочку mongo с параметрами аутентификации. Когда я иду вперед и пытаюсь вставить документ в коллекцию, он работает -

> use testauth
> db.readonlycol.insert({"key": "value"})
WriteResult({ "nInserted" : 1 })

update, похоже, тоже работает. Единственная команда, которая не работает - remove. Что я делаю не так?

...