Действие «удалить» отсутствует у пользователя MongoDB, но включено в унаследованной роли

#mongodb #permissions #roles

Вопрос:

У меня есть пользователь Mongo demoUser , который должен наследовать все разрешения от своей родительской роли mainRole . mainRole имеет index и remove действия, разрешенные для data коллекции. Тем не менее, только действие index наследуется пользователем. Поэтому каждое remove() намерение завершается ошибкой разрешения. До сих пор я не обнаружил никаких связанных с этим вопросов, которые могли бы дать мне какой-либо намек на эту проблему. Я уже удалил и повторно предоставил роль без успеха. Кто-нибудь проходил через что-то подобное?

db.getRole('mainROle', { showBuiltinRoles: true, showPrivileges: true }) Результат:

 {
    "role" : "mainRole",
    "db" : "admin",
    "isBuiltin" : false,
    "roles" : [ ],
    "inheritedRoles" : [ ],
    "privileges" : [
        {
            "resource" : {
                "db" : "myDb",
                "collection" : "data"
            },
            "actions" : [
                "insert",
                "remove"
            ]
        }
    ],
    "inheritedPrivileges" : [
        {
            "resource" : {
                "db" : "myDb",
                "collection" : "data"
            },
            "actions" : [
                "insert",
                "remove"
            ]
        }
    ]
}
 

db.getUser('demoUser', { showPrivileges: true })
` результат:

 {
    "_id" : "admin.demoUser",
    "userId" : UUID("0e9a8e27-5e40-49ab-90f3-de9dea54fed7"),
    "user" : "demoUser",
    "db" : "admin",
    "mechanisms" : [
        "SCRAM-SHA-1",
        "SCRAM-SHA-256"
    ],
    "roles" : [
        {
            "role" : "mainRole",
            "db" : "myDb"
        }
    ],
    "inheritedRoles" : [
        {
            "role" : "mainRole",
            "db" : "myDb"
        }
    ],
    "inheritedPrivileges" : [
        {
            "resource" : {
                "db" : "myDb",
                "collection" : "data"
            },
            "actions" : [
                "insert"
            ]
        }
    ],
    "inheritedAuthenticationRestrictions" : [ ]
}