MongoDB"root"用户

No_*_*ame 59 authentication authorization roles mongodb mongodb-query

是否有像MongoDB的"root"用户的超级UNIX?我一直在关注http://docs.mongodb.org/manual/reference/user-privileges/并尝试了很多组合,但它们似乎都缺乏某个领域或其他领域.当然,有一个角色高于那里列出的所有角色.

Wir*_*rie 79

虽然开箱即用,但MongoDb没有身份验证,您可以通过对admin数据库的特定用户使用"any"角色来创建等效的root /超级用户.

像这样的东西:

use admin
db.addUser( { user: "<username>",
          pwd: "<password>",
          roles: [ "userAdminAnyDatabase",
                   "dbAdminAnyDatabase",
                   "readWriteAnyDatabase"

] } )
Run Code Online (Sandbox Code Playgroud)

更新2.6+

虽然2.6中有一个新的root用户,但您可能会发现它不能满足您的需求,因为它仍有一些限制:

提供对readWriteAnyDatabase,dbAdminAnyDatabase,userAdminAnyDatabase和clusterAdmin角色组合的操作和所有资源的访问.

root不包括对以系统开头的集合的任何访问权限.字首.

更新3.0+

使用db.createUserdb.addUser被删除.

  • 自3.2.2以来,我不推荐使用addUser.我使用了db.createUser (4认同)

JER*_*RRY 74

最好的超级用户角色是root.语法是:

use admin

db.createUser(
{
    user: "root",
    pwd: "password",
    roles: [ "root" ]
})
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请查看内置角色.

希望这可以帮助 !!!

  • 谢谢 - 管理数据库是这里的连接数据库 (4认同)
  • 这应该是正确的答案,谢谢. (3认同)

KAR*_*N.A 24

Mongodb用户管理:

角色列表:

read
readWrite
dbAdmin
userAdmin
clusterAdmin
readAnyDatabase
readWriteAnyDatabase
userAdminAnyDatabase
dbAdminAnyDatabase
Run Code Online (Sandbox Code Playgroud)

创建用户:

db.createUser(user, writeConcern)

db.createUser({ user: "user",
  pwd: "pass",
  roles: [
    { role: "read", db: "database" } 
  ]
})
Run Code Online (Sandbox Code Playgroud)

更新用户:

db.updateUser("user",{
  roles: [
    { role: "readWrite", db: "database" } 
  ]
})
Run Code Online (Sandbox Code Playgroud)

删除用户:

db.removeUser("user")
Run Code Online (Sandbox Code Playgroud)

要么

db.dropUser("user")
Run Code Online (Sandbox Code Playgroud)

查看用户:

db.getUsers();
Run Code Online (Sandbox Code Playgroud)

更多信息: https ://docs.mongodb.com/manual/reference/security/#read


ahy*_*ong 6

有一个超级用户角色:root,这是一个内置角色,可以满足您的需求.

  • 是的,只是为了记录,在MongoDB 2.6中引入了`root`角色. (2认同)