Portál AbcLinuxu, 8. května 2025 05:06

Dotaz: Audit trails nad jedinou MySQL tabulkou?

14.1.2015 03:13 Harvie.CZ
Audit trails nad jedinou MySQL tabulkou?
Přečteno: 387×
Odpovědět | Admin
Ahoj, resim nasledujici problem.

Snazim se navrhnout nejakej elegantni system pro "audit trails" v databazi. Momentalne to funguje takhle: Cely je to IMHO naprosto super vymysleny, ale ma to jeden zasadni problem. Neumim to zautomatizovat na urovni databaze a na urovni kodu je to pruda ohlidat aby nikdo nikde nezapisoval primo. Chci aby se vyse popsany proces aplikoval kdyz zavolam normalni naivni DELETE nebo UPDATE a nevi jak na to. SELECT me netrapi, to si klidne pohlidam sam.

Zkousel sem to resit triggerem, ale ten nemuze zapisovat do tabulky, ktery se sam tyka. To je problem. Reseni by samozrejme bylo ukladat historii do druhy tabulky a pri mazani tam zaznamy proste presouvat, ale to se mi vubec nelibi, nepripada mi to dost elegantni a delat to v zadnym pripade nebudu.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.1.2015 16:35 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Audit trails nad jedinou MySQL tabulkou?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Teď jsem to psal v sousedním vláknu: nepomohl by mariadb-audit-plugin Jako inspirace nebo i jako řešení... (ale nepoužívám to). Pokud není databází Mysql/Maria, tak hledat analogický nástroj. IMHO asi je nějaký důvod proč ten modul vznikl.
-- OldFrog
rADOn avatar 14.1.2015 17:59 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Audit trails nad jedinou MySQL tabulkou?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Logicky to zni ok. Prakticky… o jak velky tabuli je rec? Datum platnosti od-do je hezka vec pokud chces aby slo zadat ze zitra rano zacne platit jina hodnota, jinak je to kapku overkill pacz nafukujes tabuli mrtvymi daty. Na malych datech je to putna, nad vetsim datasetem casem dojdes do stavu ze nemuzes udelat alter bez dlouhyho vypadku a pak se to musi resit trochu slozitejc.

Reseni by se mozna dalo zaridit triggerem coz by bylo bytelny ale docela vachrlaty (ve smyslu ze to nepujde snadno obejit ale muze to mit vedlejsi ucinky, zalezi co za db pouzivas). Asi nejprimocarejsi by bylo napsat si na to storku. Musel by sis pohlidat ze nikdo nebude primo updatovat/deletovat ale to se da, dulezity je ze nebudes muset vsude opisovat tu kopirovaci logiku. Na chytrejsi db by se to i nechalo vynutit pravama. Storka je lepsi nez trigger pacz tam muzes napsat slozitejsi logiku a je lip videt co to dela.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
14.1.2015 19:23 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Audit trails nad jedinou MySQL tabulkou?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Trigger s insertem do další tabulky. Obojí s právy jiného uživatele, aby se se záznamy nedalo manipulovat.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.