Możliwość zablokowania dostępu do wprowadzania danych do tabeli

0

Mam takie pytanie czy można w jakiś ukryty sposób zablokować dostęp to wybranych tabel w taki sposób, żeby ciężko było taką blokadę znaleźć?
Przykładowo tworzę tabelę na własne potrzeby. Użytkownik wprowadza tam dane za pośrednictwem jakiegokolwiek programu. Chciałbym zablokować taką możliwość z poziomu bazy, ale nie poprzez triggera, bo on jest zbyt łatwy do namierzenia.

4

Różne uprawnienia i role dla różnych użytkowników. Np dla PostgreSQLa

3

jeśli user ma fizyczny dostęp do bazy top mu możesz co najwyżej palcem pogrozić.

0

backdoory to się w kodzie zostawia

0

Zwracaj użytkownikowi dane via funkcja zwracająca kursor ;)

0
abrakadaber napisał(a):

jeśli user ma fizyczny dostęp do bazy top mu możesz co najwyżej palcem pogrozić.

Nie wiem jak to jest robione w bankach, ale tam nawet administratorzy nie są wstanie zrobić selecta po tabelach.
Szyfrowanie wolumentów? Co prawda nie mam pojęcia jak, ale myśle że w brzydkiej bazie danych na O da się to zrobić.

0
endrius napisał(a):

Mam takie pytanie czy można w jakiś ukryty sposób zablokować dostęp to wybranych tabel w taki sposób, żeby ciężko było taką blokadę znaleźć?
Przykładowo tworzę tabelę na własne potrzeby. Użytkownik wprowadza tam dane za pośrednictwem jakiegokolwiek programu. Chciałbym zablokować taką możliwość z poziomu bazy, ale nie poprzez triggera, bo on jest zbyt łatwy do namierzenia.

Nie widzi mi się ten pomysł.
Na moją intuicję, to nad bazą tzreba popełnić jakąś aplikację, choćby popularne dziś słowo WebAPI. Ograniczysz możliwości bardzo precyzyjnie.
Można prawami bazy osiągnąć sporo, ale przychodzi moment, że środkami SQL dana "blokada biznesowa" jest nie do wyrażenia.

1

jeszcze raz - jak user ma dostęp do maszyny i do konta admina/roota to praktycznie się nie da. A z Twojego opisu wynika, że taki dostęp chcesz zabronić.

Może napisz po co w ogóle tak kombinujesz bo się zaraz okaże, że potrzebne Ci jest całkiem coś innego.

0

@abrakadaber: Mam moduł napisany w narzędziu dołączonym do ERPa. Chciałbym z poziomu bazy zablokować działanie tego modułu na określonych tabelach (moich). Każda osoba, która zna to narzędzie w ERPie może bez problemu zdjąć założone blokady. Kilka kliknięć wystarczy i moduł znowu działa
Są czasami upierdliwi klienci, którzy kombinują tak, żeby nie zaakceptować wykonanej pracy.

1

to szyfruj dane w tych tabelach tak, że tylko Twój moduł będzie je potrafił odszyfrować - nie potrzebujesz wtedy nic po stronie bazy a nawet jak ktoś odczyta dane to nic mu to nie da. Ale to Cię nie uchroni ani przed usunięciem/zmianą danych ani przed usunięciem tabeli. Żeby takie coś zablokować na poziomie bazy musiał byś mieć dostęp do bazy na poziomie admina, dodać nowego usera i dać dostęp do tych tabel tylko jemu.

0

Ogólnie to o co pytasz to chyba oraclowe VPD. Podam Ci dwa linki, które mam nadzieje wyjaśnią więcej w kontekście postgresql:
https://www.enterprisedb.com/edb-docs/d/edb-postgres-advanced-server/user-guides/user-guide/9.6/EDB_Postgres_Advanced_Server_Guide.1.32.html
i najbliższy temu VPD na czystym postgresql to:
https://www.postgresql.org/docs/9.5/ddl-rowsecurity.html

0
endrius napisał(a):

Mam takie pytanie czy można w jakiś ukryty sposób zablokować dostęp to wybranych tabel w taki sposób, żeby ciężko było taką blokadę znaleźć?
Przykładowo tworzę tabelę na własne potrzeby. Użytkownik wprowadza tam dane za pośrednictwem jakiegokolwiek programu. Chciałbym zablokować taką możliwość z poziomu bazy, ale nie poprzez triggera, bo on jest zbyt łatwy do namierzenia.

Napisz kontekst biznesowy, rozumiem że user ma nie wiedzieć że tabela jest zablokowana? Bo tak to wystarczy że w apce robisz zapisz i nie obsługujesz errorów typu że tabela jest tylko read only. Albo złe zarządzanie transakcjami

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