用户角色 - MongoDB管理数据库中的帐户优先于"normal"数据库中的帐户



只是一个关于mongodb用户帐户的快速问题。

我在管理数据库中配置了以下用户:

> use admin
switched to db admin
> db.system.users.find({ user : "foobar_admin"}).pretty()
{
        "_id" : ObjectId("52024f53e513b080573d59de"),
        "otherDBRoles" : {
                "test" : [
                        "dbAdmin",
                        "readWrite"
                ]
        },
        "pwd" : "<pwdhash>",
        "roles" : [
                "read"
        ],
        "user" : "foobar_admin"
}
> 

和在测试数据库

上配置的以下用户
> use test
switched to db test
> db.system.users.find({ user : "abc_admin"}).pretty()
{
        "_id" : ObjectId("52024f97e513b080573d59e1"),
        "pwd" : "<pwdhash>",
        "roles" : [
                "readWrite"
        ],
        "user" : "foobar_admin"
}
> 

admin数据库中的权限设置是否覆盖测试数据库中的权限设置?IE,是否foobar_admin有dbAdmin和读写测试数据库?一个文档是否优先于另一个文档?

对于任何想知道的人来说,凭证都不优先,而是根据用户身份验证到的数据库应用相关角色。

在上面的例子中,

  • 如果foobar_admin用户对admin数据库进行身份验证,则该用户将拥有dbAdminreadWrite角色
  • 如果foobar_admin用户对test数据库进行身份验证,则该用户将只具有readWrite角色

文档(http://docs.mongodb.org/manual/reference/privilege-documents/)似乎没有明确说明这一点。

谢谢你容忍我的胡言乱语!:)

最新更新