sql >> Databasteknik >  >> RDS >> PostgreSQL

Django + PostgreSQL:skapa en databas (vilka privilegier att bevilja)

Django behöver full tillgång till den underliggande databasen om du vill använda alla dess funktioner som migrationer . Därför rekommenderas det i dokumenten att bevilja alla privilegier.

Det finns användningsfall där du kanske vill begränsa åtkomsten - t.ex. om du har ett ohanterat schema, som delas med andra appar. Men det här är ganska speciellt. Dessa ämnen täcks inte av dokumenten och lämnas åt dig som DBA.

Om du vet vilka privilegier som behövs av din django - ge dem bara som du vill.

Om du inte vet vilka behörigheter som behövs, använd följande procedur:

  1. Ställ in ditt projekt i utvecklingssammanhang med hjälp av en fullständigt beviljad användare.
  2. Skapa en ny användare och ge inga behörigheter
  3. Byt din django för att använda den användaren
  4. Starta ditt program med dess funktioner och vänta på SQL-fel.
  5. Ge nödvändiga behörigheter

Upprepa steg 4. och 5. så länge allt fungerar - skriv alla grants i en sql-fil, för att kunna återskapa detta senare. Naturligtvis kan du påskynda processen genom att ge saker framför dig, om du redan vet att det behövs.

Du kommer förmodligen att behöva

  • SELECT i nästan alla fall
  • INSERT om användare ska kunna skapa en modell
  • UPDATE om användare ska kunna ändra en modell
  • DELETE om användare ska kunna ta bort en modell
  • REFERENCES om användare skapar en modell med främmande nyckelbegränsningar till en annan modell - REFERENCES behövs för denna annan modell.

Vad som behövs vid din ansökan är något bara du vet. Kanske SELECT räcker när du bara ger läsbar åtkomst till dina data.

När du arbetar så, bör du ha en separat användare, som används för distribution, som har rätt rättigheter att utföra dina migreringar (ge alla privilegier i det här fallet är vettigt). Detta gäller för varje release och bör vara automatiserad IMO.




  1. Hur tar man bort en enskild fil från mediabutiken?

  2. Finns det en officiell rekommendation från Oracle om användningen av explicita ANSI JOINs kontra implicita joins?

  3. Returnera kortdagens namn från ett datum i Oracle

  4. Konfigurera Oracle XStream