Ako zakázať spúšťač v Oracle

Ako Zakazat Spustac V Oracle



Databázové spúšťače alebo skrátene spúšťače odkazujú na uložené procedúry, ktoré sa vykonávajú ako odozva na aktivitu udalosti v rámci daného databázového objektu.

To sa líši od štandardných uložených procedúr, ktoré vyžadujú explicitné vyvolanie od používateľa. Keďže spúšťače sú automatické, spúšťajú sa alebo spúšťajú, keď nastane zadaná udalosť, bez ohľadu na stav pripojeného používateľa alebo servera.







Väčšina relačných databáz podporuje používanie spúšťačov na vykonávanie automatizovaných úloh, ako je zabránenie neplatným transakciám, protokolovanie udalostí, načítanie a zaznamenávanie štatistík prístupu k tabuľke a ďalšie.



Po vytvorení spúšťača sa spúšťa vždy, keď sa vyskytne súvisiaca udalosť. Možno však budete chcieť dočasne alebo natrvalo zabrániť spusteniu spúšťača. Tu vstupuje do hry funkcia deaktivácie spúšťača.



Tento príspevok bude diskutovať o rýchlych a jednoduchých krokoch na deaktiváciu spúšťača v databáze Oracle. Ak ste novým spúšťačom Oracle a chceli by ste vedieť, ako ho vytvoriť, pozrite si nasledujúci odkaz:





https://linuxhint.com/oracle-create-trigger

Vytvorenie testovacieho spúšťača

Predtým, než budeme diskutovať o metódach deaktivácie spúšťača, nastavíme vzorový spúšťač na demonštračné účely.



POZNÁMKA : Táto časť sa nezaoberá tým, ako definovať alebo používať spúšťače databázy.

Chceme vytvoriť spúšťač, ktorý zaznamená aktivitu používateľa po operácii odstránenia. Predpokladajme napríklad, že máme tabuľku sample_data s informáciami, ako sú uvedené:

Najprv musíme vytvoriť tabuľku, do ktorej ukladáme protokoly pre každú aktivitu odstraňovania.

Schéma tabuľky je nasledovná:

vytvoriť tabuľku sample_data_logs(
identifikačné číslo,
meno varchar2(50),
ip_address varchar2(20),
btc_address varchar2(50),
kreditná_karta varchar2(50),
identifikátor varchar2(40),
dátum vymazania,
delete_by varchar2(20)
);

Ďalej musíme definovať spúšťač, ktorý sa vykoná po udalosti delete. Definícia spúšťača je uvedená nasledovne:

vytvoriť alebo nahradiť spúšťač log_user
po odstránení
na vzorových_údajoch
pre každý riadok
vyhlásiť
action_username varchar2(20);
začať
vybrať používateľa do action_username z dual;
vložiť do sample_data_logs
hodnoty (:OLD.id,
:OLD.first_name,
:OLD.ip_address,
:OLD.btc_address,
:OLD.credit_card,
:STARÝ.identifikátor,
sysdate,
action_username);
koniec;

Ak chcete otestovať spúšťač, vykonajte operáciu odstránenia z tabuľky sample_data, ako je znázornené:

delete from sample_data kde id = 1;

Nakoniec môžeme skontrolovať tabuľku protokolov, aby sme sa uistili, že operácia odstránenia bola zaznamenaná:

vyberte * z protokolov vzorových_údajov;

Výkon:

Ako vidíme, tabuľka obsahuje údaje o predchádzajúcich údajoch pred odstránením, ako aj používateľské meno, ktoré vykonalo činnosť vymazania, a čas vymazania.

V nasledujúcich častiach si ukážeme, ako deaktivovať predchádzajúci spúšťač. Predtým sa uistite, že váš cieľový spúšťač je funkčný a či máte dostatočné povolenia na jeho aktiváciu alebo deaktiváciu.

Zakázať spúšťač pomocou PL/SQL

Prvým a najjednoduchším spôsobom deaktivácie spúšťača je použitie príkazu SQL. Našťastie nám spoločnosť Oracle poskytuje príkaz ALTER TRIGGER, ktorého syntax je poskytnutá takto:

ALTER TRIGGER názov_spúšťača DISABLE;

Ak chcete napríklad zakázať spúšťač log_user, ktorý sme vytvorili skôr, môžeme spustiť nasledovné:

alter trigger log_user disable;

Po spustení si spúšťač už nebude uchovávať kópiu starých údajov a používateľa, ktorý vykonal odstránenie, ako je uvedené nižšie:

delete from sample_data kde id = 2;

Skontrolujte denníky:

vyberte * z protokolov vzorových_údajov;

Výkon:

Ako vidíme, stále máme len jeden rekord.

Zakázať spúšťač pomocou SQL Developer

Na deaktiváciu spúšťača v grafickom rozhraní môžeme použiť utilitu SQL Developer. Začnite prihlásením sa do SQL Developer.

Prejdite do sekcie „Spúšťače“:

Rozbaľte adresár spúšťačov a nájdite spúšťač, ktorý chcete deaktivovať. Kliknite pravým tlačidlom myši na názov spúšťača a vyberte možnosť „Zakázať“.

Potvrďte operáciu „Zakázať“ a kliknite na „Použiť“.

Po zakázaní Oracle spúšť zošedí, čo znamená, že je neaktívny.

Záver

Tento článok skúmal, ako zakázať spúšťač Oracle pomocou príkazov PL/SQL a pomôcky SQL Developer.