我的 debian Linux 机器上安装了一台 mongodb 服务器。现在为了在允许远程登录之前保护它,我正在尝试使用以下命令添加管理员用户:
db.addUser( { user: "admin",pwd: "MY_PASSWORD",roles: [ "userAdminAnyDatabase" ] } )
我一定是做了一些非常错误的事情,因为我的密码最终在数据库中未加密,还有它的 md5 哈希版本。在运行命令之前,我尝试使用 md5 手动对其进行哈希处理,但仍然没有运气......
这是我在数据库中得到的:
{ "_id" : ObjectId("5260fc9f51f87eba8d937701"),
"user" : { "user" : "admin", "pwd" : "MY_PASSOWRD", "roles" : [ "userAdminAnyDatabase" ] }, "readOnly" : false, "pwd" : "HASHED_VERSION_OF_MY_PASSWORD" }
如何在数据库中不以明文密码结束的情况下添加用户?
您可能使用的是期望不同语法的旧版本。 2.2 中的 addUser 函数需要一个字符串作为用户名,另一个字符串作为密码。 似乎您添加了一个用户,其整个完整用户名为"{"用户":"admin","pwd":"MY_PASSOWRD","角色":["userAdminAnyDatabase" ] }' - 可能shell应该给出错误,但它没有。
请尝试使用预期的 2.2 语法:
> db.addUser( "admin", "MY_PASSWORD")
您可以通过运行以下命令来确认服务器版本:
> db.version()