2017-08-21 17 views
0

Nous devons avoir un utilisateur avec des privilèges minimaux qui ne peuvent verrouiller qu'une instance mongo, en utilisant db.fsyncLock() et db.unlock(), pour nous assurer que nous pouvons prendre des instantanés cohérents des images de disque. J'ai actuellement le rôle suivant créé:Privilèges minimum requis pour verrouiller et déverrouiller Mongo

{ 
    "role" : "local_lock", 
    "db" : "admin", 
    "isBuiltin" : false, 
    "roles" : [ ], 
    "inheritedRoles" : [ ], 
    "privileges" : [ 
     { 
      "resource" : { 
       "cluster" : true 
      }, 
      "actions" : [ 
       "logRotate", 
       "resync", 
       "unlock" 
      ] 
     } 
    ], 
    "inheritedPrivileges" : [ 
     { 
      "resource" : { 
       "cluster" : true 
      }, 
      "actions" : [ 
       "logRotate", 
       "resync", 
       "unlock" 
      ] 
     } 
    ] 
} 

Mais quand j'utilise cet utilisateur pour tenter un verrou que je reçois les éléments suivants:

> db.fsyncLock() 
{ 
    "ok" : 0, 
    "errmsg" : "not authorized on admin to execute command { fsync: 1.0, lock: true }", 
    "code" : 13, 
    "codeName" : "Unauthorized" 
} 
> 

Quelles autres autorisations sont nécessaires? versions mongo comme suit:

MongoDB shell version v3.4.7 
MongoDB server version: 3.4.7 

Répondre

0

Eh bien, ce qui limite l'utilisateur à ce serré ne peut pas être une bonne idée et peut-être qu'il/elle ne peut pas effectuer cette action du tout. Toutefois, essayez d'accorder des autorisations fsync et unlock à un compte. Voir fsync et unlock actions dans la documentation.

+0

C'est un utilisateur étant assumée par un processus automatisé, d'où l'exigence de l'utilisateur à verrouiller aussi étroitement que possible. On dirait que j'ai eu une erreur ID10T quelque part: / – ModulusJoe

0

je crois que je faisais une faute de frappe attribuer le rôle à l'utilisateur, ce qui suit ne fait œuvre:

[ 
    { 
     "role" : "local_lock", 
     "db" : "admin", 
     "isBuiltin" : false, 
     "roles" : [ ], 
     "inheritedRoles" : [ ], 
     "privileges" : [ 
      { 
       "resource" : { 
        "cluster" : true 
       }, 
       "actions" : [ 
        "fsync", 
        "unlock" 
       ] 
      } 
     ], 
     "inheritedPrivileges" : [ 
      { 
       "resource" : { 
        "cluster" : true 
       }, 
       "actions" : [ 
        "fsync", 
        "unlock" 
       ] 
      } 
     ] 
    } 
]