Я включил доступ на уровне коллекции в своей базе данных MongoDB. Я хочу, чтобы мои пользователи имели доступ к своей собственной коллекции (а не к другим) в базе данных при подключении из Robo3T. Но после подключения к базе данных Robo 3T не позволяет просматривать список коллекций и выдает следующую ошибку:
Ошибка:
Ошибка ListCollections: {ok: 0.0, errmsg: "не авторизовано в DssScheduler для выполнения команды {listCollections: 1, filter: {}, курсор: {}, $readPreference: {mode: "secondaryPreferred"}, $db: ... ", код: 13, codeName: "Неавторизованный" }
Итак, я попытался установить привилегии базы данных, как показано ниже:
db.createRole({ role: "collAReadWrite",
privileges: [
{ resource:
{ db: "MyDB", collection: "collA"
},
actions: ["find","insert","update","remove"]
},
{ resource:
{ db: "MyDB", collection: "collB"
},
actions: ["find"]
},
{ resource:
{ db: "MyDB", collection: "collC"
},
actions: ["find"]
}
],
roles: []
})
Я ожидал, что это сработает, так как я дал пользователю доступ на чтение ко всем коллекциям, но доступ на запись только к collectionA. После этого я назначил пользователю указанную выше роль с помощью команды ниже:
db.createUser(
{
user: "collAUser",
pwd: "collAUserPassxxxxxxx",
roles: [ { role: "collAReadWrite", db: "MyDB" } ]
}
)
Тем не менее Robo 3T выдает ту же ошибку.
Был бы признателен за любую помощь в этом!