Я новичок в MongoDB и просто не могу понять, как база данных работает до конца.Для начала я объясню, что я хочу сделать.Нужно сделать на сайте форму, через которую будут добавляться новые пользователи для клиентской программы в WPF.NET, в которой будет происходить соединение с сервером.
Мне не понятногде пользователь должен быть в базе данных в admin или в моей базе данных, что это локально, config dbs?
Я посмотрел видео и прочитал для аутентификации .Хорошо, я создал пользователя, но он подключается ко всей базе данных, и поэтому может читать данные другого пользователя.Я имею в виду, что если кто-то хочет перейти на сервер и взломать или перезаписать данные другого клиента. Можно ли предоставить клиенту доступ только к определенному документу?
Пример:
Пользователи : ClientUser1 , ClientUser2, ClientUser3
Коллекция ClientCollection : Document1ForUser1Only , Document2ForUser2Only, Document3ForUser3Only
C # WPF .NET Клиент, которого я вызываю
новый MongoClient ("mongodb: //127.0.0.1: 27017 /? Db = custom & user = ClientUser1 & password = 1234 "
Доступ только для Document1ForUser1Only , поскольку это правильные данные учетной записи пользователя.
Update1
Мне кажется, что все это можно сделать с помощью ролей. Я выполнил свою часть и указал на нее пользователю. Но когда я выполняю поиск своих коллекций, он показывает мнеошибка. А в программе Studio 3T я не вижу ни одной коллекции.
db.createRole({ role: "User",
privileges: [
{ resource: { db: "testdb", collection: "UserCollection" }, actions: [ "find", "update", "insert", "remove" ]}
],
roles: []
})
> show collections
2018-05-13T20:38:09.463+0300 E QUERY [thread1] Error: listCollections failed: {
"ok" : 0,
"errmsg" : "not authorized on testdb to execute command {
listCollections: 1.0, filter: {}, $db: \"testdb\" }",
"code" : 13,
"codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype._getCollectionInfosCommand@src/mongo/shell/db.js:941:1
DB.prototype.getCollectionInfos@src/mongo/shell/db.js:953:19
DB.prototype.getCollectionNames@src/mongo/shell/db.js:964:16
shellHelper.show@src/mongo/shell/utils.js:813:9
shellHelper@src/mongo/shell/utils.js:710:15
@(shellhelp2):1:1