2014-04-08 27 views
5

我使用的是最新版本的驅動程序和MongoDB數據庫2.6的,我用來創建使用下面的代碼的用戶:如何創建MongoDB中用戶

 MongoUser _user1 = new MongoUser("username", "password", false); 

     MongoDatabase.AddUser(_user1); 

現在跟它MongoDatabase.AddUser()已被棄用通過顯示以下信息:

...已經過時:使用新的用戶管理命令 '的createUser' 或 'UpdateUser兩個'「

這個新的用戶管理命令在哪裏?如何使用新的MongoDB C#驅動程序創建用戶?

回答

0

我做了關於GitHub的庫中的最新代碼「的createUser」的搜索: https://github.com/mongodb/mongo-csharp-driver/search?q=createUser&ref=cmdform

在寫這篇文章的時候,只提及「的createUser」 is here

的方法已被標記但作爲已過時in this commit

但是;對代碼的仔細檢查,我see this

if (_server.RequestConnection.ServerInstance.Supports(FeatureId.UserManagementCommands)) 
    { 
     AddUserWithUserManagementCommands(user); 
    } 
    else 
    { 
     AddUserWithInsert(user); 
    } 

所以,它的引擎蓋

2

我使用MongoDB的2.6.2和最新的C#的驅動程序1.9.2下調用所需的方法。 這就是你可以用「的createUser」添加新用戶:

public static void AddUser(string user, string password, string[] roles) 
{ 
    var database = GetDatabase(); 
    var command = new CommandDocument { { "createUser", user}, { "pwd", password }, { "roles", new BsonArray(roles) } }; 
    var result = database.RunCommand(command); 
} 
4

對於那些有興趣與C#V2.0.1驅動程序創建用戶和MongoDB v3.0.6使用以下命令:

var client = new MongoClient(connectionString); 
var database = client.GetDatabase("database_to_create_user_in"); 
var user = new BsonDocument { { "createUser", "fred" }, { "pwd", "some_secure_password" }, { "roles", new BsonArray { new BsonDocument { { "role", "read" }, { "db", "database_to_create_user_in" } } } } }; 
await database.RunCommandAsync<BsonDocument>(user);