26.07.2011 21:21
OlegON
 
Иногда требуется, чтобы в рабочую базу не лазили всяким мусором вроде 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.
Часовой пояс GMT +3, время: 06:37.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.