Tremendas artimañas

En uno de los proyectos en los que estoy trabajando, los desarrolladores utilizan clandestinamente la herramienta TOAD para operar con la base de datos. Por un problema de licencias, se les ha pedido a los desarrolladores que no utilicen esta aplicación, y utilicen otros programas que, para lo que necesitan, cumplen la funcionalidad necesaria.

Parece que TOAD, de Quest, es una herramienta demasiado atractiva para algunos. Incluso ofreciendo alternativas gratuítas al respecto.

Tras comprobar que seguían utilizando TOAD, incluso contra las bases de datos de producción, decidimos implementar el siguiente trigger after logon:


create or replace trigger logon_program after logon on database
declare r_session v$session%rowtype;
begin
    — Tomamos info de la sesion que se conecta
    select * into r_session
    from v$session
    where audsid=userenv(‘SESSIONID’);
    
    if ((upper(r_session.program) like ‘%T%O%A%D%’)
           or (upper(r_session.program) like ‘%TOAD%’))
    then
           raise_application_error(-20002,’Hacking detected. Application not supported.’);
    end if;    
end;
/

No obstante, hay gente que se sigue resignando a usar sustitutivos a TOAD, y recurren a estratégias tan imaginativas como renombrar el ejecutable TOAD.EXE por SQLPLUSW.EXE

Vamos, casi ni se nota!


SQL> select sid, serial#, program, module, osuser from v$session;

       SID    SERIAL# PROGRAM                        MODULE                                        OSUSER
———- ———- —————————— ——————————————— ————–
         1          1 ORACLE.EXE                                                                   SYSTEM
         2          1 ORACLE.EXE                                                                   SYSTEM
         3          1 ORACLE.EXE                                                                   SYSTEM
         4          1 ORACLE.EXE                                                                   SYSTEM
         5          1 ORACLE.EXE                                                                   SYSTEM
         6          1 ORACLE.EXE                                                                   SYSTEM
         7          1 ORACLE.EXE                                                                   SYSTEM
         8          1 ORACLE.EXE                                                                   SYSTEM
        10       1293 jrew.exe                       jrew.exe                                      bbdd
        11        333 sqlplus.exe                    sqlplus.exe                                   bbdd
*       13        583 sqlplusw.exe                   T.O.A.D.                                      slaborda
        14          2 JDBC Thin Client               OWB Runtime Service – Infrastructure          SYSTEM
*       17       1091 sqlplusw.exe                   T.O.A.D.                                      slaborda
        18       1006 OraEdit.exe                    OraEdit.exe                                   bbdd
        19        385 QueryReporter.exe              PL/SQL Developer                              bbdd
*       22        819 sqlplusw.exe                   T.O.A.D.                                      slaborda
        23         30 PLSQLDev.exe                   PL/SQL Developer                              bbdd
        37         75 jrew.exe                       jrew.exe                                      fdomingues
*       44         21 FCBARCELONA5-REALMADRID0.exe   T.O.A.D.                                      slaborda
        53        196 JDBC Thin Client               JDBC Thin Client                              fdomingues
        61        413 JDBC Thin Client               JDBC Thin Client                              fdomingues
*       62         50 FCBARCELONA5-REALMADRID0.exe   T.O.A.D.                                      slaborda

22 filas seleccionadas.

Impresionante…