sql >> Databáze >  >> RDS >> Mysql

Existuje nějaký způsob, jak automaticky vytvořit spouštěč při vytváření nové tabulky v MySQL?

Jak jsem uvedl v vaše další otázka , Myslím, že je zde na místě procesní a bezpečnostní kontrola. Je to auditovaná databáze, takže nikdo (zejména poskytovatelé služeb třetích stran) by měli vytvářet tabulky ve vaší databázi bez vašeho vědomí .

Problém, který máte, je, že kromě vytvářené nové tabulky budete také potřebovat vytvořit další tabulku pro uložení auditovaných/změněných záznamů, která bude mít identickou strukturu jako původní tabulka s možným časem/datem. a uživatelský sloupec. Pokud tuto tabulku vytváří poskytovatel třetí strany, nebude vědět, že má vytvořit tabulku auditu, takže i kdybyste mohli své spouštěče generovat dynamicky, nefungovaly by.

Je nemožné vytvořit jedinou tabulku, která bude obsahovat všechny záznamy změn pro všechny ostatní tabulky ve vaší databázi, protože struktura mezi tabulkami se nevyhnutelně liší.

Proto:zadávejte všechny požadavky na změnu (např. poskytovatelé chtějí vytvořit TableX, odešlou požadavek na změnu (včetně SQL skriptu) s vysvětlením důvodu změny) sobě a/nebo svému týmu.

Spustíte SQL na testovací kopii vaší databáze a použijete stejnou strukturu k vytvoření další tabulky, která bude uchovávat upravené záznamy.

Poté vytvoříte a otestujete potřebné spouštěče, vygenerujete nový skript SQL pro vytvoření dvou tabulek a vašich spouštěčů a spustíte je ve vaší živé databázi. Poskytovateli udělíte oprávnění k použití nové tabulky a je pryč.

Všichni jsou šťastní. Ano, může to chvíli trvat a ano, budete mít více práce, ale to je zatraceně méně práce, než je potřeba pokusit se analyzovat protokoly dotazů a znovu vytvořit záznamy, které již byly změněny/ smažte nebo analyzujte binární protokol a udržujte jej aktuální při každé změně a upravte svůj kód, když se změní formát souboru protokolu atd. atd.




  1. MySQL seskupit podle a seřadit podle

  2. SYSDATE() vs NOW() v MySQL:Jaký je rozdíl?

  3. Jak přežít audit Oracle

  4. Jak vložit obrázek do mysql databáze (tabulky)?