Aplikacja oparta o bazę PosgreSQL, problem z dostępem bezpośrednio do bazy

0

Dobry wieczór, to mój pierwszy post tutaj więc wypada się ładnie przywitać :)

Do sedna. Mam następujący scenariusz:
Korzystam z aplikacji korzystającej z bazy PostgeSQL (od razu dodam też, że pierwszy raz pracuję z tym typem bazy), którą integruję z innymi rozwiązaniami za pomocą API. Napotkałem jednak na pewne braki i ich rozwiązaniem wydaje się być bezpośredni dostęp do bazy danych - nie ma problemu z logowaniem itp. dane dostępowe do bazy posiadam.

O ile odczytywanie interesujących mnie danych z bazy nie jest problemem to już przy próbie zapisu nowych rekordów natrafiłem na trudności.
Jeżeli dodaję dodatkowy wpis z poziomu aplikacji (np. do blacklisty IP) to pojawia się on jako kolejny rekord w odpowiedniej tabeli i jest widoczny też widoczny z poziomu aplikacji. W sytuacji kiedy dodam wpis ręcznie do bazy (np. z poziomu pgAdmin 4) o pojawia się on w odpowiedniej tabeli, ale nie jest widoczny z poziomu interfejsu aplikacji...

Podejrzewam, że w bazie są zaszyte jakieś dodatkowe procedury lub inne mechanizmy więc zrobiłem zrzut komunikacji z bazą (Wireshark) i zacząłem analizę. W pakietach widoczna jest komunikacja z bazą po dodaniu elementu z poziomu interfejsu aplikacji.

0000   45 00 00 33 3b 32 40 00 80 06 00 00 7f 00 00 01   E..3;2@.........
0010   7f 00 00 01 c8 9a 15 68 43 d5 e2 93 6c 8d be 39   ....È..hCÕâ.l.¾9
0020   50 18 08 05 90 af 00 00 51 00 00 00 0a 42 45 47   P....¯..Q....BEG
0030   49 4e 00                                          IN.
0000   45 00 00 b6 3b 36 40 00 80 06 00 00 7f 00 00 01   E..¶;6@.........
0010   7f 00 00 01 c8 9a 15 68 43 d5 e2 9e 6c 8d be 4a   ....È..hCÕâ.l.¾J
0020   50 18 08 04 52 a0 00 00 51 00 00 00 8d 69 6e 73   P...R ..Q....ins
0030   65 72 74 20 69 6e 74 6f 20 62 6c 61 63 6b 6c 69   ert into blackli
0040   73 74 20 28 62 6c 6f 63 6b 74 79 70 65 2c 64 65   st (blocktype,de
0050   73 63 72 69 70 74 69 6f 6e 2c 65 78 70 69 72 65   scription,expire
0060   73 61 74 2c 69 70 61 64 64 72 2c 69 70 6d 61 73   sat,ipaddr,ipmas
0070   6b 29 20 76 61 6c 75 65 73 28 30 2c 27 27 2c 27   k) values(0,'','
0080   31 33 38 32 30 30 31 34 31 38 35 27 2c 27 31 2e   13820014185','1.
0090   32 2e 33 2e 34 27 2c 27 32 35 35 2e 32 35 35 2e   2.3.4','255.255.
00a0   32 35 35 2e 32 35 35 27 29 20 52 45 54 55 52 4e   255.255') RETURN
00b0   49 4e 47 20 2a 00                                 ING *.

i kilka innych - załączam PCAP do wglądu okrojony do tego konkretnego zapytania.

Czy mogę liczyć na pomoc w temacie?

pzdr,
plochu

0

Może sprawdź log. Trochę łatwiej odczytać zapytania https://www.postgresql.org/docs/current/runtime-config-logging.html#guc-log-statement

1

Może aplikacja ma cache który musisz odświeżyć?

0
Panczo napisał(a):

Może sprawdź log. Trochę łatwiej odczytać zapytania https://www.postgresql.org/docs/current/runtime-config-logging.html#guc-log-statement

Ok, dzięki za wskazówkę gdzie tego szukać. Spróbuję uruchomić logowanie, ale nie wiem czy coś pomoże - przynajmniej na obecnym etapie.

Nie mam w tym momencie problemu z czytaniem zapytań (fakt, czytelność nie jest na najwyższym poziomie, ale przy Wireshark nauczyłem się "czytać z domysłem"), bardziej chodzi o fakt, że nie bardzo mogę zrozumieć dlaczego mój wpis nie jest widoczny z poziomu aplikacji i czym różni się ręczne dodawanie od tego z GUI programu.

2

Cache w apce, a nie w bazie. Gdy dodajesz z apki to apka od razu czyści cache, ale gdy dodasz ręcznie to nie wie, że ma wyczyścić. Standardowe zachowanie.

0
student pro napisał(a):

Może aplikacja ma cache który musisz odświeżyć?

Jak mogłem na to nie wpaść :) zaćmienie jakieś...

GUI aplikacji to bootsrtap + angular. Samo odświeżenie, czy też zalogowanie się na nowo nie pomaga, ale restart usług aplikacji już tak.
Wiem w takim razie gdzie jest pies pogrzebany.

Pytanie teraz czy jestem w stanie to jakoś ugryźć? Sugestie?
Nie będę ukrywał, że chciałem być sprytny i myślałem, że aplikacja sama wychwyci zmiany w bazie...

1 użytkowników online, w tym zalogowanych: 0, gości: 1