Иногда требуется, чтобы в рабочую базу не лазили всяким мусором вроде ToAd и прочими грехоподелиями. Скрипт давно сделал и давно не использую, может, какие-то огрехи и есть, но суть одна... Против DBA он не сработает, а остальных будет выбрасывать.
Код:
CREATE OR REPLACE TRIGGER BLOCK_TOOLS_FROM_PROD
AFTER LOGON ON DATABASE
DECLARE
V_PROG VARCHAR2 (256);
V_USER VARCHAR2 (64);
BEGIN
SELECT sys_context('userenv','module'),
sys_context('userenv','session_user')
INTO V_PROG, V_USER
FROM dual;
IF V_USER IN ('SUPERMAG') THEN
IF UPPER(V_PROG) LIKE '%TOAD%' OR -- TOAD
UPPER(V_PROG) LIKE '%T.O.A.D%' OR -- TOAD
UPPER(V_PROG) LIKE '%SQLNAV%' OR -- SQL NAVIGATOR
UPPER(V_PROG) LIKE '%PLSQLDEV%' OR -- PLSQL DEVELOPER
UPPER(V_PROG) LIKE '%BUSOBJ%' OR -- BUSINESS OBJECTS
UPPER(V_PROG) LIKE '%EXCEL%' OR -- MS-EXCEL PLUG-IN
UPPER(V_PROG) LIKE '%ACC%' -- ACCESS
THEN
RAISE_APPLICATION_ERROR(-20000, 'Disabled application!');
END IF;
END IF;
END;
В данном случае если пользователь SUPERMAG, то проверяется список приложений и, если что-то похожее попадается, то логин заканчивается ошибкой. Запускать из под SYS.