2016-11-06 1 views
0

j'ai ajouté un utilisateur « admin » dans le db admin, avec des rôles db admin et un autre db:mongodb: comment définir correctement les rôles et les privilèges?

[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" 
      } 
     ] 
    } 

Je teste que cet utilisateur ne peut pas admin La base de données « test » (mise à jour d'un e-mail de l'utilisateur du testeur)

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

Comme 'isabelle' n'a pas de rôle sur db 'test', elle ne devrait pas être autorisé à mettre à jour tous les utilisateurs sur ce db ... (?) mais il est ...

[test] user: isabelle>db.getUser("myTester") 
    { 
     "_id" : "test.myTester", 
     "user" : "myTester", 
     "db" : "test", 
     "roles" : [ 
      { 
       "role" : "readWrite", 
       "db" : "test" 
      }, 
      { 
       "role" : "read", 
       "db" : "reporting" 
      } 
     ], 
     "customData" : { 
      "email" : "[email protected]" 
     } 
    } 

qu'est-ce qui me manque? le rôle 'useradmin' d'isabelle sur 'admin' db le permet? J'ai essayé de l'enlever, mais ça ne change rien ...

J'ai aussi essayé de déplacer isabelle dans la base de données du cockpit, avec le rôle dbOwner, ça ne change rien ... isabelle est toujours capable de mettre à jour myTester utilisateur dans la base de données de test ...

comment puis-je limiter isabelle à admin que le db 'cockpit' (gestion des utilisateurs et des rôles pour cette db ..?

merci pour ... enlightment

Répondre