mongodb:如何正确设置角色和权限?

时间:2016-11-06 11:20:40

标签: mongodb roles

我在admin db中添加了一个'admin'用户,在admin db上有角色,另一个db:

    [admin] user: yves>db.auth("isabelle", "abc123")
    1

    [admin] user: isabelle>db.getUser("isabelle")
    {
        "_id" : "admin.isabelle",
        "user" : "isabelle",
        "db" : "admin",
        "roles" : [
            {
                "role" : "userAdmin",
                "db" : "admin"
            },
            {
                "role" : "dbOwner",
                "db" : "cockpit"
            }
        ]
    }

我正在测试此用户无法管理'test'数据库(更新测试用户用户的电子邮件)

    [admin] user: isabelle>use test
    switched to db test
    [test] user: isabelle>db.updateUser(
    ... "myTester",
    ... {
    ... customData: {email: "mytester@example.com"}
    ... }
    ... )

由于'isabelle'在'test'db上没有任何角色,因此不应该允许她更新此db上的任何用户...(?) 但它是......

    [test] user: isabelle>db.getUser("myTester")
    {
        "_id" : "test.myTester",
        "user" : "myTester",
        "db" : "test",
        "roles" : [
            {
                "role" : "readWrite",
                "db" : "test"
            },
            {
                "role" : "read",
                "db" : "reporting"
            }
        ],
        "customData" : {
            "email" : "mytester@example.com"
        }
    }
我错过了什么? 在'admin'db允许的情况下执行isabelle'角色'userAdmin'吗? 我试图删除它,但它deosn(改变任何东西......

我还试图在驾驶舱数据库中移动isabelle,使用dbOwner角色,它不会改变任何东西...... isabelle仍然能够在测试数据库中更新myTester用户......

我怎样才能将isabelle限制为仅管理'cockpit'数据库(管理此数据库的用户和角色..?

感谢启发...

1 个答案:

答案 0 :(得分:0)

添加到您的mongod.conf

security:
   authorization: enabled

同时检查this mongodb link