从.NET使用MongoLab - 权限问题

时间:2016-07-21 16:06:29

标签: c# .net mongodb mlab

我在MongoLab上开设了一个帐户(免费的沙箱帐户用于测试)。我的代码在我当地的MongoDb服务器上运行,运行正常,没有任何问题。

在MongoLab中,我创建了一个数据库并为该数据库创建了一个用户,并在我的应用程序中放置了他们给我的连接字符串:

 mongodb://<dbuser>:<dbpassword>@<my_id>.mlab.com:52408/<my_db>

我甚至试过这个:

 mongodb://<dbuser>:<dbpassword>@<my_id>.mlab.com:52408/<my_db>?authMode=scram-sha1&rm.tcpNoDelay=true

在我的.NET代码中,我正在连接到我的数据库:

MongoClient client = new MongoClient(MY_CONNECTION_STRING);
IMongoDatabase database = client.GetDatabase("MyTestDb");

_versionRulesCollection = database.GetCollection<VersionRule>("VersionRules");
_versionDetailsCollection = database.GetCollection<VersionDetails>("VersionDetails");

但是当我尝试做这样的事情时:

_versionDetailsCollection.Indexes.CreateOneAsync(Builders<VersionDetails>.IndexKeys.Ascending(x => x.ProductName).Ascending(y => y.DeviceType).Ascending(z => z.VersionName))

我得到一个例外

System.AggregateException: One or more errors occurred. ---> MongoDB.Driver.MongoCommandException: Command createIndexes failed: not authorized on MyTestDb to execute command { createIndexes: "VersionDetails", indexes: [ { key: { ProductName: 1, DeviceType: 1, VersionName: 1 }, name: "ProductName_1_DeviceType_1_VersionName_1" } ] }

即使尝试进行查询,我也得到了:

not authorized for query on MyTestDb .VersionDetails

我没有看到任何方法为门户网站上的用户设置权限。数据库是在我的应用程序中动态创建的。我在这里迷路了。

我做错了什么(它适用于我的本地机器)?

0 个答案:

没有答案