创建新用户时Mongodb获取错误

创建新用户时Mongodb获取错误,mongodb,mongodb-query,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 ad

我刚刚在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

请参阅SCRAM-SHA-256密码创建和摘要或未消化

db.createUser(
{
用户:“管理员”,
pwd:“ADYKD332@@33”,
角色:[{role:“userAdminAnyDatabase”,db:“admin”}],
密码消化器“
}
)
如果使用,则必须设置参数
密码摘要器

 db.createUser(
  {
    user: "admin",
    pwd: "ADYkdfd332@@33",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
    passwordDigestor: "<server|client>"
  }
)
db.createUser(
{
用户:“管理员”,
pwd:“ADYKD332@@33”,
角色:[{role:“userAdminAnyDatabase”,db:“admin”}],
密码消化器“
}
)
这对我很有用:

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

在Mongo Shell中使用以下命令:

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

此外,您可以参考

我正在使用Ubuntu为linux运行windows子系统,并收到此错误。有时会出现一个问题,即windows在退出时似乎无法正确关闭
mongod
,因此您需要将
Ctrl+Shift+Esc
放入任务管理器并手动关闭它

事实上,每当mongo似乎在做任何不寻常的事情时,这似乎就是问题所在

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


希望这对某人有所帮助。

只有在远程访问时才会出现此错误

use "database name"

db.createUser(
   {
     user: "username",
     pwd: "password",
     roles: [ { role: "dbOwner", db: "database name" } ],
     mechanisms:[  
       "SCRAM-SHA-1"
     ]
   }
)
如果
passwordDigestor
是客户端,则
机制
SCRAM-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
是服务器,则可以使用
机制
,即
SCRAM-SHA-1
SCRAM-SHA-256
,或者即使您根本没有指定它也可以工作

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

  }
)

passwordDigestor是正确的选项,而不是digestPasswordmongo 4.0.7:错误:“passwordDigestor”必须是“服务器”或“客户端”,得到:“true”:请解释您的答案好吗?为什么要“使用“数据库名称”?登录时这将不起作用?
use admin
db.createUser(
  {
    user: "username",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
    passwordDigestor: "server"

  }
)