Mongodb在创建新用户时出现错误

时间:2018-07-03 08:01:47

标签: mongodb mongodb-query

我刚刚在Ubuntu服务器上安装了一个全新的mongodb,当我尝试添加用户时出现错误

db.createUser(
  {
    user: "admin",
    pwd: "ADYkdfd332@@33",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)


2018-07-03T13:29:41.556+0530 E QUERY    [thread1] Error: couldn't add user: Use of SCRAM-SHA-256 requires undigested passwords :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1437:15
@(shell):1:1

7 个答案:

答案 0 :(得分:27)

这对我有用:

db.createUser({  
 user:"test1",
 pwd:"test1",
 roles:[  
  {  
     role:"readWrite",
     db:"u8"
  }
 ],
 mechanisms:[  
  "SCRAM-SHA-1"
 ]
})

答案 1 :(得分:9)

如果使用User Management Methods,则必须设置参数passwordDigestor

 db.createUser(
  {
    user: "admin",
    pwd: "ADYkdfd332@@33",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
    passwordDigestor: "<server|client>"
  }
)

答案 2 :(得分:8)

在Mongo Shell中使用以下命令:

use admin
db.createUser({
    user:"admin",
    pwd:"abc123",
    roles:[{role:"userAdminAnyDatabase",db:"admin"}],
    passwordDigestor:"server"
})

您还可以参考enable authentication

答案 3 :(得分:3)

请参阅带有摘要或未摘要的here

的SCRAM-SHA-256密码创建
db.createUser(
  {
    user: "admin",
    pwd: "ADYkdfd332@@33",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
    passwordDigestor : "<server|client>"
  }
)

答案 4 :(得分:3)

仅当您远程访问它时,才会出现此错误。

如果passwordDigestor是客户端,则mechanismsSCRAM-SHA-256不兼容,只能使用SCRAM-SHA-1

use admin
db.createUser(
  {
    user: "username",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
    mechanisms: [ "SCRAM-SHA-1" ],
    passwordDigestor: "client"

  }
)

如果passwordDigestor是服务器,则mechanismsSCRAM-SHA-1SCRAM-SHA-256都可以使用,或者即使您完全不指定它也可以使用。

use admin
db.createUser(
  {
    user: "username",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
    passwordDigestor: "server"

  }
)

答案 5 :(得分:0)

我正在使用Ubuntu运行Linux的Windows子系统,并收到此错误。有时存在一个问题,Windows似乎无法正确关闭mongod上的exit,因此您需要Ctrl+Shift+Esc进入任务管理器并手动将其关闭。

实际上,只要mongo似乎在做任何异常的事情,这似乎就是问题所在。

然后运行mongod。在另一个终端中,尝试再次添加您的用户。

希望能帮助某人。

答案 6 :(得分:0)

使用“数据库名称”

db.createUser(    {      用户:“用户名”,      pwd:“密码”,      角色:[{角色:“ dbOwner”,db:“数据库名称”}],      机制:[
  “ SCRAM-SHA-1”  ]    }  )