Django heeft volledige toegang tot de onderliggende database nodig als je alle functies wilt gebruiken, zoals migraties . Daarom wordt in de documenten aanbevolen om alle rechten toe te kennen.
Er zijn gevallen waarin u de toegang misschien wilt beperken - b.v. als je een onbeheerd schema hebt, dat wordt gedeeld met andere apps. Maar dit is best bijzonder. Deze onderwerpen worden niet behandeld in de documenten en worden voor u overgelaten als de DBA.
Als je weet welke privileges je django nodig heeft, verleen ze dan zoals je wilt.
Als u niet weet welke privileges nodig zijn, gebruikt u de volgende procedure:
- Stel uw project op in ontwikkelingscontext, met behulp van een volledig toegewezen gebruiker.
- Maak een nieuwe gebruiker aan en verleen geen rechten
- Schakel je django in om die gebruiker te gebruiken
- Start uw toepassing, gebruik de functies en wacht op SQL-fouten.
- Verleen de benodigde rechten
Herhaal stap 4. en 5. zolang alles werkt - schrijf alle subsidies in één sql-bestand, om dit later te kunnen reproduceren. Natuurlijk kun je het proces versnellen door dingen van tevoren toe te kennen, als je al weet dat het nodig is.
Je hebt hoogstwaarschijnlijk
SELECTin bijna ieder gevalINSERTof gebruikers een model moeten kunnen makenUPDATEof gebruikers een model moeten kunnen wijzigenDELETEof gebruikers een model moeten kunnen verwijderenREFERENCESals gebruikers een model maken met externe sleutelbeperkingen voor een ander model -REFERENCEShiervoor is een ander model nodig.
Wat nodig is in het geval van uw aanvraag, is iets dat alleen u weet. Misschien SELECT is voldoende, wanneer u alleen leesbare toegang tot uw gegevens geeft.
Als je zo werkt, zou je een aparte gebruiker moeten hebben, gebruikt voor implementatie, die de juiste rechten heeft om je migraties uit te voeren (alle privileges verlenen in dit geval is logisch). Dit geldt voor elke release en zou IMO geautomatiseerd moeten zijn.