MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann ich Berechtigungen auf Feldebene für MongoDB implementieren?

Wie bei MongoDB 3.4 reicht die Granularität der integrierten Zugriffskontrolle nur bis zur Zugriffskontrolle auf Sammlungsebene.

Beispielsweise könnten Sie eine benutzerdefinierte Rolle erstellen, die die Berechtigungen für eine Sammlung einschränkt:

privileges: [
  { resource: { db: "db_ANIMAL", collection: "tb_BIRD" },  actions: [ "find", "update" ] }
]

Um den schreibgeschützten Zugriff auf eine Teilmenge von Sammlungsdaten zu beschränken, könnten Sie die Verwendung der neuen Views-Funktionalität in MongoDB 3.4 in Betracht ziehen oder die Schwärzung auf Feldebene mithilfe von $redact implementieren Aggregationsphase (MongoDB 2.6+).

Wenn Sie eine detailliertere Zugriffskontrolle für Aktualisierungen auf Feldebene benötigen, müssen Sie diese derzeit in Ihrem API- oder Anwendungscode implementieren.

Es gibt einige relevante Funktionsanfragen, die Sie im MongoDB Issue Tracker beobachten/aufwerten möchten:

  • SERVER-648:Zugriffskontrolle auf Dokumentebene
  • SERVER-27698:Materialisierte Ansichten