PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Django + PostgreSQL:създаване на база данни (какви привилегии да предоставите)

Django се нуждае от пълен достъп до основната база данни, ако искате да използвате всички нейни функции като миграции . Затова се препоръчва в документите да се предоставят всички привилегии.

Има случаи на употреба, в които може да искате да ограничите достъпа - напр. ако имате неуправляема схема, която се споделя с други приложения. Но това е доста специално. Тези теми не са обхванати от документите и са оставени за вас като DBA.

Ако знаете кои привилегии са необходими на вашия django - просто ги дайте, както желаете.

Ако не знаете кои привилегии са необходими, използвайте следната процедура:

  1. Настройте проекта си в контекст на разработка, като използвате пълноправен потребител.
  2. Създайте нов потребител и не давайте никакви разрешения
  3. Превключете вашето django, за да използвате този потребител
  4. Стартирайте приложението си, използвайте функциите му и изчакайте SQL грешки.
  5. Дайте необходимите разрешения

Повторете стъпка 4. и 5., докато всичко работи - запишете всички грантове в един sql файл, за да можете да възпроизведете това по-късно. Разбира се, можете да ускорите процеса, като предоставите неща отпред, ако вече знаете, че са необходими.

Най-вероятно ще имате нужда от

  • SELECT в почти всеки случай
  • INSERT ако потребителите трябва да могат да създават модел
  • UPDATE ако потребителите трябва да могат да променят модел
  • DELETE дали потребителите трябва да могат да изтрият модел
  • REFERENCES ако потребителите създадат модел с ограничения на външен ключ към друг модел - REFERENCES е необходим за този друг модел.

Какво е необходимо в случай на кандидатстване е нещо, което само вие знаете. Може би SELECT е достатъчно, когато просто предоставите четим достъп до вашите данни.

Когато работите по този начин, трябва да имате отделен потребител, използван за внедряване, който има правилните права за изпълнение на вашите миграции (даването на всички привилегии в този случай има смисъл). Това важи за всяко издание и трябва да бъде автоматизирано IMO.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Хибернация и postgreSQL с Grails

  2. PostgreSQL - Присвояване на целочислена стойност на низ в оператора case

  3. Как мога да изпратя имейл от тригера на PostgreSQL?

  4. Oracle Cast и MULTISET налични в POSTGRES

  5. setParameter() не задава правилни кавички