PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Django + PostgreSQL:tworzenie bazy danych (jakie uprawnienia przyznać)

Django potrzebuje pełnego dostępu do podstawowej bazy danych, jeśli chcesz korzystać ze wszystkich jego funkcji, takich jak migracje . Dlatego zaleca się w dokumentacji, aby przyznać wszystkie uprawnienia.

Istnieją przypadki użycia, w których możesz chcieć ograniczyć dostęp - np. jeśli masz niezarządzany schemat, który jest udostępniany innym aplikacjom. Ale to jest wyjątkowe. Te tematy nie są objęte dokumentacją i pozostawione Tobie jako administratorowi danych.

Jeśli wiesz, jakich uprawnień potrzebuje Twoje django - po prostu nadaj je tak, jak chcesz.

Jeśli nie wiesz, jakie uprawnienia są potrzebne, zastosuj następującą procedurę:

  1. Skonfiguruj swój projekt w kontekście programistycznym, korzystając z pełnoprawnego użytkownika.
  2. Utwórz nowego użytkownika i nie udzielaj żadnych uprawnień
  3. Przełącz swoje django, aby używało tego użytkownika
  4. Uruchom aplikację, korzystaj z jej funkcji i poczekaj na błędy SQL.
  5. Przyznaj niezbędne uprawnienia

Powtarzaj kroki 4. i 5. dopóki wszystko działa - zapisz wszystkie granty w jednym pliku sql, aby móc je później odtworzyć. Oczywiście możesz przyspieszyć ten proces, przyznając rzeczy z góry, jeśli już wiesz, że jest to potrzebne.

Najprawdopodobniej będziesz potrzebować

  • SELECT w prawie każdym przypadku
  • INSERT czy użytkownicy powinni być w stanie stworzyć model
  • UPDATE czy użytkownicy powinni mieć możliwość modyfikowania modelu
  • DELETE czy użytkownicy powinni mieć możliwość usunięcia modelu
  • REFERENCES jeśli użytkownicy tworzą model z ograniczeniami klucza obcego do innego modelu - REFERENCES jest potrzebny do tego innego modelu.

To, co jest potrzebne w przypadku Twojej aplikacji, to coś, o czym wiesz tylko Ty. Może SELECT wystarczy, gdy po prostu zapewnisz czytelny dostęp do swoich danych.

Kiedy pracujesz w ten sposób, powinieneś mieć osobnego użytkownika, używanego do wdrożenia, który ma odpowiednie uprawnienia do wykonywania twoich migracji (nadanie wszystkich uprawnień w tym przypadku ma sens). Dotyczy to każdego wydania i powinno być zautomatyzowane 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 jak wybrać wartości w kolumnie z jednej tabeli, które są dostępne tylko w innej tabeli?

  2. Wspólna pamięć podręczna trafień w postgreSQL

  3. Po aktualizacji do macOS Big Sur nie mogę połączyć się z bazą danych PostgreSQL za pomocą MAMP

  4. Jak mogę uzyskać odległość między dwoma punktami na Ziemi z PostGIS?

  5. Kiedy usuwanie wiersza w postgresie nie zmniejsza numeru seryjnego pk?