3

只读用户只有读取权限。因此,具有 readonly true 的用户无权添加新用户或任何写入能力。

我正在构建一个管理 MongoDB 中数据的实用程序。当我以只读用户身份登录时,它不应该允许我添加新用户。当我实现它时,它实际上并没有添加用户,但它没有抛出任何异常。

这是我添加只读用户的命令

var credentials = new MongoCredentials(username, password,false);
var addUser = new MongoUser(credentials, readOnly);
var database = server.GetDatabase(databaseName);
database.AddUser(addUser);
4

1 回答 1

1

您是否使用 --auth 命令行参数启动 mongod?

safe=true在你的连接字符串上使用了吗?

此外,您需要使用管理员凭据将用户添加到数据库:

var adminCredentials = new MongoCredentials("adminuser", "adminpassword", true);
var userCredentials = new MongoCredentials("username", "password");
var user = new MongoUser(userCredentials, true);
var fooDatabase = server.GetDatabase("foo", adminCredentials);
fooDatabase.AddUser(user);

请注意,有两组凭据:一组用于正在添加的用户,另一组用于您的代码以添加用户的管理员凭据。

于 2012-04-27T18:58:58.023 回答