Специальный документ для каждого пользователя - PullRequest
0 голосов
/ 12 мая 2018

Я новичок в 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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...