在 MongoDB 中创建第一个用户 3.2。

Creating first user in MongoDB 3.2.

我新安装了 MongoDB 3.2 并尝试创建第一个抛出以下错误的用户。

“错误:无法添加用户:管理员未授权执行命令”

我遵循了 mongoDB 3.2 文档, https://docs.mongodb.org/manual/tutorial/enable-authentication/

为了添加管理员,我尝试了以下导致上述错误的代码

创建用户管理员。 添加具有 userAdminAnyDatabase 角色的用户。例如,以下在 admin 数据库上创建用户 myUserAdmin:

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "MY_PASSWORD",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

我也浏览了其他 Whosebug 的答案,但没有运气,

MongoDB - admin user not authorized

我的全错,

 E QUERY    [thread1] Error: couldn't add user: not authorized on admin to execute command { createUser: "myUserAdmin
", pwd: "xxx", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ], digestPassword: false, writeConcern: { w: "majority", wtimeout: 30000.0
} } :
_getErrorWithCode@src/mongo/shell/utils.js:23:13
DB.prototype.createUser@src/mongo/shell/db.js:1225:11
@(shell):1:1

谢谢

如果您重复使用现有的 database directory /data/db,很可能之前已经设置了 user/auth。

您可以:

  • 使用 --dbpath.
  • 指向新的数据目录,从新的数据库目录开始
  • 运行 mongod 没有--auth, 那么

    use admin;
    db.getUsers(); // to see whether there's already an existing user. 
    

    使用db.removeUser()删除现有用户。