我想将用户添加到mongodb中新创建的数据库。我正在使用db.addUser(用户名,密码)。 但它给mongoAuthentication异常。请告诉我原因。我想添加一个用户,以便下次当我使用同一个数据库时,我可以使用它与我创建用户时使用的相同信用集合使用mongo将用户添加到数据库c#驱动程序
1
A
回答
1
0
如果您已经在管理员中创建了一个带有用户的数据库数据库,那么在创建新用户之前,您需要连接这些凭据。
0
可以使用下面的代码添加用户。
db.addUser(
{
user: "user",
pwd: "pass",
roles: [ "root" ]
}
)
0
- 开始
mongod.exe
与--auth
参数。这将启用您的MongoDB启用身份验证模式。 - 由于第一次启动MongoDB时将没有用户,因此它将被视为“本地主机异常”(您应该看到一条消息,指出“admin.system.users中没有配置用户,允许本地主机访问”控制台)。这意味着,它允许您在管理员数据库(admin用户)中创建第一个用户,然后他们将有权创建其他常规用户。
要建立管理员用户启动
mongo.exe
,然后键入以下命令:> use admin > var user = { "user" : "adminUser", "pwd" : "adminPass", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } > db.createUser(user);
您也可以如下做到这一点,使用C#代码:
private static bool fnCreateAdminUser() { try { var user = new BsonDocument { { "createUser", "adminUser" }, { "pwd", "adminPass" }, { "roles", new BsonArray { new BsonDocument { { "role", "userAdminAnyDatabase" }, { "db", "admin" } } } } }; new MongoClient().GetDatabase("admin").RunCommand<BsonDocument>(user); return true; } catch (MongoCommandException) { return true; } catch { return false; } }
现在您的管理员用户创建,您可以使用此管理员用户为您的数据库创建其他常规用户。您可以使用C#代码或命令行等,具体取决于您的实施。以下是其创建指定数据库的用户是C#示例方法:
private static bool CreateUser(string strDBName) { try { if (!string.IsNullOrEmpty(strDBName)) { // prepare admin credentials MongoCredential cred = MongoCredential.CreateCredential("admin", "adminUser", "adminPass"); MongoClientSettings setting = new MongoClientSettings(); setting.Credentials = new[] { cred }; var user = new BsonDocument { { "createUser", "regularUser" }, { "pwd", "regularPass" }, { "roles", new BsonArray { new BsonDocument { { "role", "readWrite" }, { "db", strDBName } } } } }; new MongoClient(setting).GetDatabase(strDBName).RunCommand<BsonDocument>(user); return true; } else { return false; } } catch (MongoCommandException) { return true; } // if user already exists catch { return false; } }
您也可以参考this博客文章以获取更多的细节。它也解释了其他事情,如添加/更改用户角色等。
相关问题
- 1. 无法使用Mongo Java驱动程序创建数据库
- 2. 哪个C#驱动程序用于Mongo?
- 3. 使用哪种驱动程序将Node.js应用程序连接到数据库?
- 4. 将用户添加到phplist数据库
- 5. 将Oracle驱动程序添加到C#程序
- 6. 使用通用数据库包时找不到驱动程序
- 7. 上传文件到Mongo Atlas用Mongo驱动程序
- 8. C#Mongo驱动程序 - MongoCollection.Group方法
- 9. Mongo C#驱动程序不删除
- 10. Mongo C#驱动程序对象分配
- 11. 如何在新的C++ Mongo驱动程序中使用光标
- 12. 将用户添加到应用程序
- 13. Ruby Mongo驱动程序 - Find_by_Id
- 14. 如何将用户添加到数据库并授权用户
- 15. 无法使用MongoDB驱动程序连接到Azure Cosmos数据库.Net C#
- 16. 如何使用c#编程将数据添加到MSQL数据库中?
- 17. 使用C#添加虚拟驱动程序#
- 18. 如何将用户自定义数据添加到数据库?
- 19. 新用户添加到数据库
- 20. 如何使用Spring Mongo数据库将对象添加到现有List?
- 21. 将数据库添加到mvc3应用程序时出错
- 22. 将多个数据库添加到单个Android应用程序
- 23. 如何将数据库和Nsxmlparser添加到应用程序中?
- 24. 如何将SQLite数据库添加到iOS(CoreData)应用程序?
- 25. 将SQLite数据库添加到iPhone应用程序
- 26. 无法将数据库添加到Asp.Net应用程序
- 27. 添加:await_data标志mongo红宝石驱动程序光标
- 28. 玩! 2框架 - 添加Java Mongo驱动程序
- 29. 将用户添加到MySQL的程序
- 30. Erlang:将库添加到应用程序
这意味着我必须连接到管理员凭据。然后我可以将用户添加到数据库或用户的所有数据库都存储在管理员的数据库中 – 2012-04-17 10:43:04
如果数据库没有任何凭据 – 2012-04-17 11:22:43