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