2017-08-21 3 views
0

Wir benötigen einen Benutzer mit minimalen Berechtigungen, der nur eine Mongo-Instanz mit db.fsyncLock() und db.unlock() sperren kann, um sicherzustellen, dass konsistente Snapshots erstellt werden können der Datenträgerbilder. Im Moment habe ich die folgende Rolle erstellt:Erforderliche Mindestberechtigungen für das Sperren und Entsperren von 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" 
      ] 
     } 
    ] 
} 

Aber wenn ich diesen Benutzer verwenden eine Sperre erhalte ich folgendes versuchen:

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

Welche anderen Berechtigungen erforderlich sind? Mongo Versionen wie folgt:

MongoDB shell version v3.4.7 
MongoDB server version: 3.4.7 

Antwort

0

Nun, zu diesem engen Benutzer Begrenzung können nicht eine gute Idee sein, und möglicherweise er/sie überhaupt diese Aktion nicht ausführen kann.

Versuchen Sie jedoch, fsync und unlock Berechtigungen zu gewähren. Siehe fsync und unlock Aktionen in der Dokumentation.

+0

Dies ist ein Benutzer durch einen automatisierten Prozess angenommen wird, damit die Anforderung für den Benutzer gesperrt werden so eng wie möglich. Sieht so aus als hätte ich irgendwo einen ID10T Fehler: / – ModulusJoe

0

Ich glaube, ich war ein Tippfehler machen, die Rolle für den Benutzer zuweisen, hat die folgende in der Tat Arbeit:

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