我想將用戶添加到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. 添加數據庫驅動程序使用WEKA類
- 3. 哪個C#驅動程序用於Mongo?
- 4. 使用sql數據庫驅動程序
- 5. c程序將用戶添加到mysql
- 6. 使用哪種驅動程序將Node.js應用程序連接到數據庫?
- 7. 將用戶添加到phplist數據庫
- 8. 將Oracle驅動程序添加到C#程序
- 9. 使用通用數據庫包時找不到驅動程序
- 10. 使用CLI實用程序將字段添加到mongo集合
- 11. 使用節點JS驅動程序刪除多個Mongo數據庫
- 12. 如何使用ODBC驅動程序API使用C++將數據綁定到SQLBindCol
- 13. 上傳文件到Mongo Atlas用Mongo驅動程序
- 14. Mongo C#驅動程序不刪除
- 15. C#Mongo驅動程序 - MongoCollection.Group方法
- 16. Mongo C#驅動程序對象分配
- 17. 使用VBA連接到Oracle數據庫的驅動程序
- 18. 使用C#mongo驅動程序構建查詢
- 19. 如何在新的C++ Mongo驅動程序中使用光標
- 20. 識別使用Mongo C#驅動程序的成功插入
- 21. 更換使用Mongo的C#2.0驅動程序
- 22. 如何做「和」查詢使用mongo db c#驅動程序?
- 23. 使用sqlite數據庫將事件添加到用戶日曆。
- 24. 將用戶添加到應用程序
- 25. 如何自動發送用戶數據到mongo數據庫
- 26. Ruby Mongo驅動程序 - Find_by_Id
- 27. 如何將用戶添加到數據庫並授權用戶
- 28. 無法使用MongoDB驅動程序連接到Azure Cosmos數據庫.Net C#
- 29. mongo scala驅動程序使用後得到_id insertOne
- 30. Py2app不包含Sqlite驅動程序 - 「數據庫錯誤:驅動程序未加載驅動程序未加載」
這意味着我必須連接到管理員憑據。然後我可以將用戶添加到數據庫或用戶的所有數據庫都存儲在管理員的數據庫中 – 2012-04-17 10:43:04
如果數據庫沒有任何憑據 – 2012-04-17 11:22:43