在 mongodb 中的授权

本文关键字:授权 mongodb | 更新日期: 2023-09-27 18:32:38

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

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

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

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

在 mongodb 中的授权

您是否使用 --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);

请注意,有两组凭据:一组用于要添加的用户,另一组管理员凭据用于代码,以便能够添加用户。