Pular para o conteúdo
  • Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 10 anos, 6 meses atrás por Avatar de Filipe Diniz CintraFilipe Diniz Cintra.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #106265
    Avatar de Filipe Diniz CintraFilipe Diniz Cintra
    Participante

      Pessoal, boa tarde.

      Estou precisando bloquear o uso de alguns software’s que fazem conexao com o banco de dados como “TOAD”, “PL-SQL” entre outros e liberar somente alguns usuarios para acesso aos programas.
      Criei entao uma trigger de AFTER LOGON ON DATABASE segue abaixo a mesma. O problema e que ela nao dispara no momento da conexao do software.

      CREATE OR REPLACE TRIGGER AUDIT_LOGON
      AFTER LOGON ON DATABASE

      DECLARE

      V_SID NUMBER;
      V_PROGRAM VARCHAR2(64);
      V_MSG VARCHAR2(200);
      V_OSUSER VARCHAR2(64);

      BEGIN

      EXECUTE IMMEDIATE ‘SELECT DISTINCT sid FROM sys.v_$mystat’
      INTO V_SID;

      EXECUTE IMMEDIATE ‘SELECT program FROM sys.v_$session WHERE sid = :b1’
      INTO V_PROGRAM
      USING V_SID;

      EXECUTE IMMEDIATE ‘SELECT osuser FROM sys.v_$session WHERE sid = :b1’
      INTO V_OSUSER
      USING V_SID;

      V_MSG := ‘Tentativa de conexao com: ‘ || V_PROGRAM || ‘ recusada! ‘
      || ‘Entre em contato com o Administrador!’;

      — programas bloqueados
      IF (UPPER(V_PROGRAM) LIKE ‘%TOAD%’ OR UPPER(V_PROGRAM) LIKE ‘%PLSQLDEV%’ OR
      UPPER(V_PROGRAM) LIKE ‘%MSACCESS%’ OR UPPER(V_PROGRAM) LIKE ‘%EXCEL%’ OR
      UPPER(V_PROGRAM) LIKE ‘%PLUS%’) AND
      (UPPER(V_OSUSER) NOT IN (‘Filipe’,
      ‘mgeweb’,
      ‘ADMINISTRATOR’,
      ‘ORACLE’)) THEN

      RAISE_APPLICATION_ERROR(-20000, V_MSG, TRUE);

      END IF;

      END;

      #106266
      Avatar de rmanrman
      Participante

        @Filipe Diniz Cintra

        Tente mudar o evento para AFTER LOGON ON SCHEMA. Desta forma crie essa TRIGGER no schema a ser auditado.


        CREATE OR REPLACE TRIGGER AUDIT_LOGON
        AFTER
        LOGON
        ON SCHEMA
        BEGIN
        DBMS_OUTPUT.PUT_LINE('HELLO');
        END;

        Só um detalhe, isso não impede de alguém não autorizado abrir uma sessão. Basta ele renomear o executável que sua variável V_PROGRAM também será modificada.

        Na minha opinião, mude a senha e repasse apenas para quem deve ter acesso.

        #106267
        Avatar de Filipe Diniz CintraFilipe Diniz Cintra
        Participante

          Entendi o questionamento a respeito da troca do nome do programa e nao posso alterar a senha do banco pq o sistema que roda na empresa tem a senha pre definida nas configuracoes do mesmo.
          vou testar com o ON SCHEMA e ver no que da. Muito Obrigado!!!!

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.
        plugins premium WordPress