sql >> Database teknologi >  >> RDS >> PostgreSQL

Django + PostgreSQL:oprettelse af en database (hvilke privilegier skal tildeles)

Django har brug for fuld adgang til den underliggende database, hvis du vil bruge alle dens funktioner såsom migrationer . Derfor anbefales det i dokumenterne at give alle privilegier.

Der er use cases, hvor du måske ønsker at begrænse adgangen – f.eks. hvis du har et ikke-administreret skema, som deles med andre apps. Men det her er ret specielt. Disse emner er ikke dækket af dokumenterne og overladt til dig som DBA.

Hvis du ved, hvilke privilegier din django har brug for - giv dem bare, som du kan lide det.

Hvis du ikke ved, hvilke rettigheder der er nødvendige, skal du bruge følgende procedure:

  1. Konfigurer dit projekt i udviklingssammenhæng ved hjælp af en fuldgyldig bruger.
  2. Opret en ny bruger, og giv ikke nogen tilladelser
  3. Skift din django til at bruge den bruger
  4. Start dit program, brug dets funktioner og vent på SQL-fejl.
  5. Giv de nødvendige tilladelser

Gentag trin 4. og 5. så længe alt virker - skriv alle grants i én sql-fil, for at kunne gengive dette senere. Selvfølgelig kan du accelerere processen ved at give ting foran, hvis du allerede ved, at det er nødvendigt.

Du får sandsynligvis brug for

  • SELECT i næsten alle tilfælde
  • INSERT hvis brugerne skulle kunne oprette en model
  • UPDATE hvis brugere skal kunne ændre en model
  • DELETE hvis brugere skulle kunne slette en model
  • REFERENCES hvis brugere opretter en model med fremmednøgle-begrænsninger til en anden model - REFERENCES er nødvendig for denne anden model.

Det, der er nødvendigt i tilfælde af din ansøgning, er noget, som kun du ved. Måske SELECT er nok, når du blot giver læsbar adgang til dine data.

Når du arbejder sådan, bør du have en separat bruger, der bruges til udrulning, som har de rette rettigheder til at udføre dine migreringer (giv alle privilegier i dette tilfælde giver mening). Dette gælder for hver udgivelse og bør være automatiseret IMO.




  1. Fejl ved udskrivning af REFCURSOR-variabel som OUT-parameter i procedure i Oracle 11g

  2. Doktrin (i symfony-projekt) kan ikke forbindes gennem stikkontakt

  3. Hvornår skal man bruge LEFT JOIN og hvornår skal man bruge INNER JOIN?

  4. SQL Server 2008 installationsfejl:Tidligere udgivelser af Microsoft Visual Studio 2008