sql >> Database >  >> RDS >> PostgreSQL

Django + PostgreSQL:een database maken (welke privileges moet je verlenen)

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:

  1. Stel uw project op in ontwikkelingscontext, met behulp van een volledig toegewezen gebruiker.
  2. Maak een nieuwe gebruiker aan en verleen geen rechten
  3. Schakel je django in om die gebruiker te gebruiken
  4. Start uw toepassing, gebruik de functies en wacht op SQL-fouten.
  5. 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

  • SELECT in bijna ieder geval
  • INSERT of gebruikers een model moeten kunnen maken
  • UPDATE of gebruikers een model moeten kunnen wijzigen
  • DELETE of gebruikers een model moeten kunnen verwijderen
  • REFERENCES als gebruikers een model maken met externe sleutelbeperkingen voor een ander model - REFERENCES hiervoor 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.




  1. Anaconda 3.5 (64bit Windows) Installeer cx_Oracle

  2. mysqldump werkt niet in crontab

  3. Externe MySQL-verbinding inschakelen:ERROR 1045 (28000):Toegang geweigerd voor gebruiker

  4. Hoe schrijf je arrays naar een Oracle 10g XE db met iBatis?