MongoDB“root”用户

问题描述 投票:56回答:5

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

mongodb authentication mongodb-query authorization roles
5个回答
76
投票

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

像这样的东西:

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

] } )

Update for 2.6+

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

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

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

Update for 3.0+

使用db.createUser作为db.addUser被删除。


68
投票

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

use admin

db.createUser(
{
    user: "root",
    pwd: "password",
    roles: [ "root" ]
})

有关详细信息,请查看built-in roles.

希望这可以帮助 !!!


20
投票

Mongodb用户管理:

角色列表:

read
readWrite
dbAdmin
userAdmin
clusterAdmin
readAnyDatabase
readWriteAnyDatabase
userAdminAnyDatabase
dbAdminAnyDatabase

创建用户:

db.createUser(user, writeConcern)

db.createUser({ user: "user",
  pwd: "pass",
  roles: [
    { role: "read", db: "database" } 
  ]
})

更新用户:

db.updateUser("user",{
  roles: [
    { role: "readWrite", db: "database" } 
  ]
})

删除用户:

db.removeUser("user")

要么

db.dropUser("user")

查看用户:

db.getUsers();

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


6
投票

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


-1
投票

“userAdmin实际上是特定数据库的超级用户角色。具有userAdmin的用户可以授予自己所有权限。但是,userAdmin不会明确授权用户获得用户管理之外的任何权限。”来自the link you posted

© www.soinside.com 2019 - 2024. All rights reserved.