Precis som i MongoDB 3.4 går granulariteten i den inbyggda åtkomstkontrollen bara så långt som åtkomstkontroll på samlingsnivå.
Du kan till exempel skapa en användardefinierad roll som begränsar privilegier för en samling:
privileges: [
{ resource: { db: "db_ANIMAL", collection: "tb_BIRD" }, actions: [ "find", "update" ] }
]
För att begränsa skrivskyddad åtkomst till en delmängd av insamlingsdata kan du överväga att använda den nya Views-funktionen i MongoDB 3.4 eller implementera fältnivåredigering med $redact
aggregeringssteg (MongoDB 2.6+).
Om du behöver mer detaljerad åtkomstkontroll för uppdateringar på fältnivå måste du för närvarande implementera detta i din API eller applikationskod.
Det finns några relevanta funktionsförfrågningar som du kanske vill titta på/rösta upp i MongoDB issue tracker:
- SERVER-648:åtkomstkontroll på dokumentnivå
- SERVER-27698:Materialiserade vyer