Я хочу, чтобы у моего пользователя была только 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
. Что я делаю не так?