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

Zapobiegaj upuszczaniu tabeli, jeśli warunki nie są spełnione

Domyślam się, że próbujesz zapytać:

Jeśli tak, jedyną wbudowaną opcją jest użycie uprawnień. Zobacz GRANT i REVOKE w podręczniku PostgreSQL.

Jeśli chcesz czegoś bardziej złożonego, możesz napisać ProcessUtility_hook , ale wymaga to napisania rozszerzenia w C, które jest skompilowane i załadowane na serwer.

Pisanie ProcessUtility_hook nie jest zbyt trudne, ale istnieją różnice między definicjami PostgreSQL 9.2 i 9.3, co oznacza, że ​​będziesz potrzebować oddzielnych rozszerzeń. Oto prosty przykład:https://github.com/ringerc/scrapcode/ drzewo/master/postgresql/example_processutility_hook a oto hak ProcessUtility, który faktycznie robi coś użytecznego:https://github.com/ringerc/postgres/blob/bdr-reject-unsafe-commands/contrib/bdr/bdr_commandfilter.c

Jeśli nie masz doświadczenia w programowaniu C i trochę czasu, ProcessUtility_hook nie jest dla ciebie.

Zobacz też:Jak zapobiec upuszczaniu tabeli?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. błąd hibernacji:nie ma klucza podstawowego dla tabeli odniesienia

  2. Ukryte funkcje PostgreSQL

  3. Jak zwrócić dynamiczną liczbę kolumn w funkcji?

  4. Jak zrobić SUMA w dwóch niepowiązanych tabelach?

  5. Liczenie znaków w sekwencjach za pomocą SQL