2

我在我的 debian linux 机器上安装了一个 mongodb 服务器。现在为了在允许远程登录之前保护它,我正在尝试使用以下命令添加一个管理员用户:

db.addUser({用户:“admin”,密码:“MY_PASSWORD”,角色:[“userAdminAnyDatabase”]})

我一定是做错了什么,因为我的密码最终在数据库中未加密以及它的 md5 散列版本。在运行命令之前,我尝试使用 md5 手动对其进行散列,但仍然没有运气......

这是我在数据库中得到的:

{“_id”:ObjectId(“5260fc9f51f87eba8d937701”),“user”:{“user”:“admin”,“pwd”:“MY_PASSOWRD”,“roles”:[“userAdminAnyDatabase”]},“readOnly”:false, “密码”:“HASHED_VERSION_OF_MY_PASSWORD”}

如何添加用户而不在数据库中使用明文密码?

4

1 回答 1

0

您可能使用的是预期不同语法的旧版本。2.2 中的 addUser 函数需要一个字符串作为用户名,另一个字符串作为密码。似乎您添加了一个用户,其完整用户名是 '{ "user" : "admin", "pwd" : "MY_PASSOWRD", "roles" : [ "userAdminAnyDatabase" ] }' - 可能 shell 应该给出一个错误,但是它不是。

尝试使用预期的 2.2 语法:

> db.addUser( "admin",  "MY_PASSWORD")

您可以通过运行来确认服务器版本:

> db.version()
于 2013-10-19T05:08:31.150 回答