Re: [oracle_br] Trigger de logon...
Sim, ai cabe ao DBA, verificar na v$session por qual programa ele está conectando com o nome do programa renomeado, agora o que você falou é a mais pura verdade, para burlar é fácil. Em Quinta-feira, 28 de Maio de 2015 16:46, Andre Santos andre.psantos...@gmail.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Rafael / Cristiano Mas se o desenvolvedor/analista for um pouco mais safo, basta renomear o executável para burlar isso. [ ]'s André 2015-05-28 16:24 GMT-03:00 Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] oracle_br@yahoogrupos.com.br: Acrescenta também nas ferramentas, o SQLTools muito utilizada por desenvolvedores e analistas. Em Quinta-feira, 28 de Maio de 2015 13:40, Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Outra coisa que reparei na sua trigger, é que você utiliza UPPER(OWNER) comparando com os nomes dos usuários em minúsculo: 'cbarbosa' entre outros... Ou seja, o usuário que entrar com cbarbosa, oracle, administrador irá passar pela trigger após a correção do seu problema. Em Quinta-feira, 28 de Maio de 2015 12:34, 'Schiavini' et...@schiavini.inf.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Boa tarde Qual é o resultado de: alter trigger TG_LOGON_AUDIT_TRIGGER compile; Étore From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Sent: quinta-feira, 28 de maio de 2015 11:50 To: Lista de Usuários Oracle; Grupo OraOracle; Oracle in Brazil Subject: [oracle_br] Trigger de logon... Bom dia! Caros amigos, em pesquisa na net, também com sugestões recebidas de alguns amigos, compilei a seguinte trigger abaixo, apesar de não apresentar erros na compilação, quando tento acessar com o usuário cbarbosa é mostrado o ERRO descrito ao final da trigger: Gostaria da ajuda dos amigos que possuem maior experiência com oracle para a identificação do erro e sua solução. Obrigado... DROP TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD; CREATE OR REPLACE TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD AFTER LOGON ON DATABASE DECLARE v_prog SYS.v_$session.program%TYPE; v_module SYS.v_$session.module%TYPE; -- Parametro acrescentado para evitar programa renomeado. owner SYS.v_$session.username%TYPE; v_osuser SYS.v_$session.osuser%TYPE; BEGIN SELECT program, module, username, osuser INTO v_prog, v_module, owner, v_osuser FROM sys.v_$session WHERE audsid = USERENV ('SESSIONID') AND audsid != 0 -- Não verificar conexões SYS AND ROWNUM = 1; -- Processos paralelos terá o mesmo do AUDSID IF UPPER (owner) NOT IN ('cbarbosa', 'oracle', 'administrador', 'IUSR_ISSEC', 'APACHE', 'OEM', 'OEM22', 'SCOTT', 'SI_INFORMTN_SCHEMA', 'TSMSYS', 'WKPROXY', 'WKSYS', 'WMSYS', 'XDB', 'SYS', 'DBSNMP', 'SYSMAN', 'SYSTEM') THEN IF UPPER (v_prog) LIKE '%TOAD%' -- Toad OR UPPER (v_module) LIKE '%TOAD%' -- Toad OR UPPER (v_prog) LIKE '%T.O.A.D%' -- Toad OR UPPER (v_module) LIKE '%T.O.A.D%' -- Toad OR UPPER (v_prog) LIKE '%SQLNAV%' -- SQL Navigator OR UPPER (v_module) LIKE '%SQLNAV%' -- SQL Navigator OR UPPER (v_prog) LIKE '%PLSQLDEV%' -- PLSQL Developer OR UPPER (v_module) LIKE '%PLSQLDEV%' -- PLSQL Developer OR UPPER (v_prog) LIKE '%PL/SQL Developer%' -- PLSQL Developer OR UPPER (v_module) LIKE '%PL/SQL Developer%' -- PLSQL Developer OR UPPER (v_prog) LIKE '%SQL%' -- SQL Developer OR UPPER (v_module) LIKE '%SQL%' -- SQL Developer OR UPPER (v_prog) LIKE '%SQL Developer%' -- SQL Developer OR UPPER (v_module) LIKE '%SQL Developer%' -- SQL Developer OR UPPER (v_prog) LIKE '%BUSOBJ%' -- Business Objects OR UPPER (v_module) LIKE '%BUSOBJ%' -- Business Objects OR UPPER (v_prog) LIKE '%EXCEL%' -- MS-Excel plug-in OR UPPER (v_module) LIKE '%EXCEL%' -- MS-Excel plug-in OR UPPER (v_prog) LIKE '%SQLPLUS%' -- SQLPLUS OR UPPER (v_module) LIKE '%SQLPLUS%' -- SQLPLUS OR UPPER (v_prog) LIKE '%DEVELOPER%' -- Oracle SQL Developer OR UPPER (v_module) LIKE '%DEVELOPER%' -- Oracle SQL Developer OR UPPER (v_prog) LIKE '%IFBLD%' -- Oracle Forms Developer Builder OR UPPER (v_module) LIKE '%IFBLD%' -- Oracle Forms Developer Builder OR UPPER (v_prog) LIKE '%RWBUILDER%' -- Oracle Reports Builder OR UPPER (v_module) LIKE '%RWBUILDER%' -- Oracle Reports Builder OR UPPER (v_prog) LIKE '%RAPTOR%' -- Oracle Raptor OR UPPER (v_module) LIKE '%RAPTOR%' -- Oracle Raptor THEN RAISE_APPLICATION_ERROR ( -2, 'A Ferramenta de desenvolvimento ' || v_module || ' não é permitida na PRODUÇÃO! (' || v_osuser || ' - ' || owner || ' - ' || v_prog || ' - ' || v_module -- Parametro acrescentado. || ')'); END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; / = ERRO == # -- Erro apresentado quando da tentativa de conexao com usuario (cbarbosa) # Ocorreu um erro ao executar a operação solicitada: ORA-04098: gatilho 'SYS.TG_LOGON_AUDIT_TRIGGER' é inválido e a revalidação falhou 04098. 0 - trigger
Re: [oracle_br] Trigger de logon...
Rafael / Cristiano Mas se o desenvolvedor/analista for um pouco mais safo, basta renomear o executável para burlar isso. [ ]'s André 2015-05-28 16:24 GMT-03:00 Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] oracle_br@yahoogrupos.com.br: Acrescenta também nas ferramentas, o SQLTools muito utilizada por desenvolvedores e analistas. Em Quinta-feira, 28 de Maio de 2015 13:40, Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Outra coisa que reparei na sua trigger, é que você utiliza UPPER(OWNER) comparando com os nomes dos usuários em minúsculo: 'cbarbosa' entre outros... Ou seja, o usuário que entrar com cbarbosa, oracle, administrador irá passar pela trigger após a correção do seu problema. Em Quinta-feira, 28 de Maio de 2015 12:34, 'Schiavini' et...@schiavini.inf.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Boa tarde Qual é o resultado de: alter trigger TG_LOGON_AUDIT_TRIGGER compile; Étore From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Sent: quinta-feira, 28 de maio de 2015 11:50 To: Lista de Usuários Oracle; Grupo OraOracle; Oracle in Brazil Subject: [oracle_br] Trigger de logon... Bom dia! Caros amigos, em pesquisa na net, também com sugestões recebidas de alguns amigos, compilei a seguinte trigger abaixo, apesar de não apresentar erros na compilação, quando tento acessar com o usuário cbarbosa é mostrado o ERRO descrito ao final da trigger: Gostaria da ajuda dos amigos que possuem maior experiência com oracle para a identificação do erro e sua solução. Obrigado... DROP TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD; CREATE OR REPLACE TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD AFTER LOGON ON DATABASE DECLARE v_prog SYS.v_$session.program%TYPE; v_module SYS.v_$session.module%TYPE; -- Parametro acrescentado para evitar programa renomeado. owner SYS.v_$session.username%TYPE; v_osuser SYS.v_$session.osuser%TYPE; BEGIN SELECT program, module, username, osuser INTO v_prog, v_module, owner, v_osuser FROM sys.v_$session WHERE audsid = USERENV ('SESSIONID') AND audsid != 0 -- Não verificar conexões SYS AND ROWNUM = 1; -- Processos paralelos terá o mesmo do AUDSID IF UPPER (owner) NOT IN ('cbarbosa', 'oracle', 'administrador', 'IUSR_ISSEC', 'APACHE', 'OEM', 'OEM22', 'SCOTT', 'SI_INFORMTN_SCHEMA', 'TSMSYS', 'WKPROXY', 'WKSYS', 'WMSYS', 'XDB', 'SYS', 'DBSNMP', 'SYSMAN', 'SYSTEM') THEN IF UPPER (v_prog) LIKE '%TOAD%' -- Toad OR UPPER (v_module) LIKE '%TOAD%' -- Toad OR UPPER (v_prog) LIKE '%T.O.A.D%' -- Toad OR UPPER (v_module) LIKE '%T.O.A.D%' -- Toad OR UPPER (v_prog) LIKE '%SQLNAV%' -- SQL Navigator OR UPPER (v_module) LIKE '%SQLNAV%' -- SQL Navigator OR UPPER (v_prog) LIKE '%PLSQLDEV%' -- PLSQL Developer OR UPPER (v_module) LIKE '%PLSQLDEV%' -- PLSQL Developer OR UPPER (v_prog) LIKE '%PL/SQL Developer%' -- PLSQL Developer OR UPPER (v_module) LIKE '%PL/SQL Developer%' -- PLSQL Developer OR UPPER (v_prog) LIKE '%SQL%' -- SQL Developer OR UPPER (v_module) LIKE '%SQL%' -- SQL Developer OR UPPER (v_prog) LIKE '%SQL Developer%' -- SQL Developer OR UPPER (v_module) LIKE '%SQL Developer%' -- SQL Developer OR UPPER (v_prog) LIKE '%BUSOBJ%' -- Business Objects OR UPPER (v_module) LIKE '%BUSOBJ%' -- Business Objects OR UPPER (v_prog) LIKE '%EXCEL%' -- MS-Excel plug-in OR UPPER (v_module) LIKE '%EXCEL%' -- MS-Excel plug-in OR UPPER (v_prog) LIKE '%SQLPLUS%' -- SQLPLUS OR UPPER (v_module) LIKE '%SQLPLUS%' -- SQLPLUS OR UPPER (v_prog) LIKE '%DEVELOPER%' -- Oracle SQL Developer OR UPPER (v_module) LIKE '%DEVELOPER%' -- Oracle SQL Developer OR UPPER (v_prog) LIKE '%IFBLD%' -- Oracle Forms Developer Builder OR UPPER (v_module) LIKE '%IFBLD%' -- Oracle Forms Developer Builder OR UPPER (v_prog) LIKE '%RWBUILDER%' -- Oracle Reports Builder OR UPPER (v_module) LIKE '%RWBUILDER%' -- Oracle Reports Builder OR UPPER (v_prog) LIKE '%RAPTOR%' -- Oracle Raptor OR UPPER (v_module) LIKE '%RAPTOR%' -- Oracle Raptor THEN RAISE_APPLICATION_ERROR ( -2, 'A Ferramenta de desenvolvimento ' || v_module || ' não é permitida na PRODUÇÃO! (' || v_osuser || ' - ' || owner || ' - ' || v_prog || ' - ' || v_module -- Parametro acrescentado. || ')'); END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; / = ERRO == # -- Erro apresentado quando da tentativa de conexao com usuario (cbarbosa) # Ocorreu um erro ao executar a operação solicitada: ORA-04098: gatilho 'SYS.TG_LOGON_AUDIT_TRIGGER' é inválido e a revalidação falhou 04098. 0 - trigger '%s.%s' is invalid and failed re-validation *Cause: A trigger was attempted to be retrieved for execution and was found to be invalid. This also means that compilation/authorization failed for the trigger. *Action: Options are to resolve
Re: [oracle_br] Trigger de logon...
Acrescenta também nas ferramentas, o SQLTools muito utilizada por desenvolvedores e analistas. Em Quinta-feira, 28 de Maio de 2015 13:40, Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Outra coisa que reparei na sua trigger, é que você utiliza UPPER(OWNER) comparando com os nomes dos usuários em minúsculo: 'cbarbosa' entre outros... Ou seja, o usuário que entrar com cbarbosa, oracle, administrador irá passar pela trigger após a correção do seu problema. Em Quinta-feira, 28 de Maio de 2015 12:34, 'Schiavini' et...@schiavini.inf.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Boa tarde Qual é o resultado de: alter trigger TG_LOGON_AUDIT_TRIGGER compile; Étore From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Sent: quinta-feira, 28 de maio de 2015 11:50 To: Lista de Usuários Oracle; Grupo OraOracle; Oracle in Brazil Subject: [oracle_br] Trigger de logon... Bom dia! Caros amigos, em pesquisa na net, também com sugestões recebidas de alguns amigos, compilei a seguinte trigger abaixo, apesar de não apresentar erros na compilação, quando tento acessar com o usuário cbarbosa é mostrado o ERRO descrito ao final da trigger: Gostaria da ajuda dos amigos que possuem maior experiência com oracle para a identificação do erro e sua solução. Obrigado... DROP TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD; CREATE OR REPLACE TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD AFTER LOGON ON DATABASE DECLARE v_prog SYS.v_$session.program%TYPE; v_module SYS.v_$session.module%TYPE; -- Parametro acrescentado para evitar programa renomeado. owner SYS.v_$session.username%TYPE; v_osuser SYS.v_$session.osuser%TYPE; BEGIN SELECT program, module, username, osuser INTO v_prog, v_module, owner, v_osuser FROM sys.v_$session WHERE audsid = USERENV ('SESSIONID') AND audsid != 0 -- Não verificar conexões SYS AND ROWNUM = 1; -- Processos paralelos terá o mesmo do AUDSID IF UPPER (owner) NOT IN ('cbarbosa', 'oracle', 'administrador', 'IUSR_ISSEC', 'APACHE', 'OEM', 'OEM22', 'SCOTT', 'SI_INFORMTN_SCHEMA', 'TSMSYS', 'WKPROXY', 'WKSYS', 'WMSYS', 'XDB', 'SYS', 'DBSNMP', 'SYSMAN', 'SYSTEM') THEN IF UPPER (v_prog) LIKE '%TOAD%' -- Toad OR UPPER (v_module) LIKE '%TOAD%' -- Toad OR UPPER (v_prog) LIKE '%T.O.A.D%' -- Toad OR UPPER (v_module) LIKE '%T.O.A.D%' -- Toad OR UPPER (v_prog) LIKE '%SQLNAV%' -- SQL Navigator OR UPPER (v_module) LIKE '%SQLNAV%' -- SQL Navigator OR UPPER (v_prog) LIKE '%PLSQLDEV%' -- PLSQL Developer OR UPPER (v_module) LIKE '%PLSQLDEV%' -- PLSQL Developer OR UPPER (v_prog) LIKE '%PL/SQL Developer%' -- PLSQL Developer OR UPPER (v_module) LIKE '%PL/SQL Developer%' -- PLSQL Developer OR UPPER (v_prog) LIKE '%SQL%' -- SQL Developer OR UPPER (v_module) LIKE '%SQL%' -- SQL Developer OR UPPER (v_prog) LIKE '%SQL Developer%' -- SQL Developer OR UPPER (v_module) LIKE '%SQL Developer%' -- SQL Developer OR UPPER (v_prog) LIKE '%BUSOBJ%' -- Business Objects OR UPPER (v_module) LIKE '%BUSOBJ%' -- Business Objects OR UPPER (v_prog) LIKE '%EXCEL%' -- MS-Excel plug-in OR UPPER (v_module) LIKE '%EXCEL%' -- MS-Excel plug-in OR UPPER (v_prog) LIKE '%SQLPLUS%' -- SQLPLUS OR UPPER (v_module) LIKE '%SQLPLUS%' -- SQLPLUS OR UPPER (v_prog) LIKE '%DEVELOPER%' -- Oracle SQL Developer OR UPPER (v_module) LIKE '%DEVELOPER%' -- Oracle SQL Developer OR UPPER (v_prog) LIKE '%IFBLD%' -- Oracle Forms Developer Builder OR UPPER (v_module) LIKE '%IFBLD%' -- Oracle Forms Developer Builder OR UPPER (v_prog) LIKE '%RWBUILDER%' -- Oracle Reports Builder OR UPPER (v_module) LIKE '%RWBUILDER%' -- Oracle Reports Builder OR UPPER (v_prog) LIKE '%RAPTOR%' -- Oracle Raptor OR UPPER (v_module) LIKE '%RAPTOR%' -- Oracle Raptor THEN RAISE_APPLICATION_ERROR ( -2, 'A Ferramenta de desenvolvimento ' || v_module || ' não é permitida na PRODUÇÃO! (' || v_osuser || ' - ' || owner || ' - ' || v_prog || ' - ' || v_module -- Parametro acrescentado. || ')'); END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; / = ERRO == # -- Erro apresentado quando da tentativa de conexao com usuario (cbarbosa) # Ocorreu um erro ao executar a operação solicitada: ORA-04098: gatilho 'SYS.TG_LOGON_AUDIT_TRIGGER' é inválido e a revalidação falhou 04098. 0 - trigger '%s.%s' is invalid and failed re-validation *Cause: A trigger was attempted to be retrieved for execution and was found to be invalid. This also means that compilation/authorization failed for the trigger. *Action: Options are to resolve the compilation/authorization errors, disable the trigger, or drop the trigger. Código de fornecedor 4098 = ATT == # -- A TRIGGER NÃO APRESENTA ERROS DE COMPILAÇÃO SELECT LINE, POSITION, REPLACE (TEXT, CHR (10), ' '), attribute FROM SYS.ALL_ERRORS A WHERE A.NAME = 'TG_BLOCK_TOOLS_FROM_PROD' AND
Re: [oracle_br] Trigger de logon...
Yep : provavelmente, como eu disse numa msg anterior, o DBA teria um JOB de banco que roda a cada um ou dois minutos, varre a V$SESSION e mata as sessões (ou envia email, se matar é muito radical) cujo nome de programa não seja o talequal da aplicação, ou que o IP é o do web server/servidor de aplicação, ou sei lá que info seria usada para identificar que a sessão se originou da app... []s Chiappa
Re: [oracle_br] Trigger de logon...
Outra coisa que reparei na sua trigger, é que você utiliza UPPER(OWNER) comparando com os nomes dos usuários em minúsculo: 'cbarbosa' entre outros... Ou seja, o usuário que entrar com cbarbosa, oracle, administrador irá passar pela trigger após a correção do seu problema. Em Quinta-feira, 28 de Maio de 2015 12:34, 'Schiavini' et...@schiavini.inf.br [oracle_br] oracle_br@yahoogrupos.com.br escreveu: Boa tarde Qual é o resultado de: alter trigger TG_LOGON_AUDIT_TRIGGER compile; Étore From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Sent: quinta-feira, 28 de maio de 2015 11:50 To: Lista de Usuários Oracle; Grupo OraOracle; Oracle in Brazil Subject: [oracle_br] Trigger de logon... Bom dia! Caros amigos, em pesquisa na net, também com sugestões recebidas de alguns amigos, compilei a seguinte trigger abaixo, apesar de não apresentar erros na compilação, quando tento acessar com o usuário cbarbosa é mostrado o ERRO descrito ao final da trigger: Gostaria da ajuda dos amigos que possuem maior experiência com oracle para a identificação do erro e sua solução. Obrigado... DROP TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD; CREATE OR REPLACE TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD AFTER LOGON ON DATABASE DECLARE v_prog SYS.v_$session.program%TYPE; v_module SYS.v_$session.module%TYPE; -- Parametro acrescentado para evitar programa renomeado. owner SYS.v_$session.username%TYPE; v_osuser SYS.v_$session.osuser%TYPE; BEGIN SELECT program, module, username, osuser INTO v_prog, v_module, owner, v_osuser FROM sys.v_$session WHERE audsid = USERENV ('SESSIONID') AND audsid != 0 -- Não verificar conexões SYS AND ROWNUM = 1; -- Processos paralelos terá o mesmo do AUDSID IF UPPER (owner) NOT IN ('cbarbosa', 'oracle', 'administrador', 'IUSR_ISSEC', 'APACHE', 'OEM', 'OEM22', 'SCOTT', 'SI_INFORMTN_SCHEMA', 'TSMSYS', 'WKPROXY', 'WKSYS', 'WMSYS', 'XDB', 'SYS', 'DBSNMP', 'SYSMAN', 'SYSTEM') THEN IF UPPER (v_prog) LIKE '%TOAD%' -- Toad OR UPPER (v_module) LIKE '%TOAD%' -- Toad OR UPPER (v_prog) LIKE '%T.O.A.D%' -- Toad OR UPPER (v_module) LIKE '%T.O.A.D%' -- Toad OR UPPER (v_prog) LIKE '%SQLNAV%' -- SQL Navigator OR UPPER (v_module) LIKE '%SQLNAV%' -- SQL Navigator OR UPPER (v_prog) LIKE '%PLSQLDEV%' -- PLSQL Developer OR UPPER (v_module) LIKE '%PLSQLDEV%' -- PLSQL Developer OR UPPER (v_prog) LIKE '%PL/SQL Developer%' -- PLSQL Developer OR UPPER (v_module) LIKE '%PL/SQL Developer%' -- PLSQL Developer OR UPPER (v_prog) LIKE '%SQL%' -- SQL Developer OR UPPER (v_module) LIKE '%SQL%' -- SQL Developer OR UPPER (v_prog) LIKE '%SQL Developer%' -- SQL Developer OR UPPER (v_module) LIKE '%SQL Developer%' -- SQL Developer OR UPPER (v_prog) LIKE '%BUSOBJ%' -- Business Objects OR UPPER (v_module) LIKE '%BUSOBJ%' -- Business Objects OR UPPER (v_prog) LIKE '%EXCEL%' -- MS-Excel plug-in OR UPPER (v_module) LIKE '%EXCEL%' -- MS-Excel plug-in OR UPPER (v_prog) LIKE '%SQLPLUS%' -- SQLPLUS OR UPPER (v_module) LIKE '%SQLPLUS%' -- SQLPLUS OR UPPER (v_prog) LIKE '%DEVELOPER%' -- Oracle SQL Developer OR UPPER (v_module) LIKE '%DEVELOPER%' -- Oracle SQL Developer OR UPPER (v_prog) LIKE '%IFBLD%' -- Oracle Forms Developer Builder OR UPPER (v_module) LIKE '%IFBLD%' -- Oracle Forms Developer Builder OR UPPER (v_prog) LIKE '%RWBUILDER%' -- Oracle Reports Builder OR UPPER (v_module) LIKE '%RWBUILDER%' -- Oracle Reports Builder OR UPPER (v_prog) LIKE '%RAPTOR%' -- Oracle Raptor OR UPPER (v_module) LIKE '%RAPTOR%' -- Oracle Raptor THEN RAISE_APPLICATION_ERROR ( -2, 'A Ferramenta de desenvolvimento ' || v_module || ' não é permitida na PRODUÇÃO! (' || v_osuser || ' - ' || owner || ' - ' || v_prog || ' - ' || v_module -- Parametro acrescentado. || ')'); END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; / = ERRO == # -- Erro apresentado quando da tentativa de conexao com usuario (cbarbosa) # Ocorreu um erro ao executar a operação solicitada: ORA-04098: gatilho 'SYS.TG_LOGON_AUDIT_TRIGGER' é inválido e a revalidação falhou 04098. 0 - trigger '%s.%s' is invalid and failed re-validation *Cause: A trigger was attempted to be retrieved for execution and was found to be invalid. This also means that compilation/authorization failed for the trigger. *Action: Options are to resolve the compilation/authorization errors, disable the trigger, or drop the trigger. Código de fornecedor 4098 = ATT == # -- A TRIGGER NÃO APRESENTA ERROS DE COMPILAÇÃO SELECT LINE, POSITION, REPLACE (TEXT, CHR (10), ' '), attribute FROM SYS.ALL_ERRORS A WHERE A.NAME = 'TG_BLOCK_TOOLS_FROM_PROD' AND A.TYPE = 'TRIGGER' AND A.OWNER = 'SYS' ORDER BY ATTRIBUTE, LINE, POSITION; Time Start: 28/05/2015 10:07:29 no rows selected. (SEM ERROS DE COMPILACAO...) Time End: 28/05/2015 10:07:30 Elapsed Time for Script Execution: 514 msecs Atenciosamente,
RE: [oracle_br] Trigger de logon...
Boa tarde Qual é o resultado de: alter trigger TG_LOGON_AUDIT_TRIGGER compile; Étore From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Sent: quinta-feira, 28 de maio de 2015 11:50 To: Lista de Usuários Oracle; Grupo OraOracle; Oracle in Brazil Subject: [oracle_br] Trigger de logon... Bom dia! Caros amigos, em pesquisa na net, também com sugestões recebidas de alguns amigos, compilei a seguinte trigger abaixo, apesar de não apresentar erros na compilação, quando tento acessar com o usuário cbarbosa é mostrado o ERRO descrito ao final da trigger: Gostaria da ajuda dos amigos que possuem maior experiência com oracle para a identificação do erro e sua solução. Obrigado... DROP TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD; CREATE OR REPLACE TRIGGER SYS.TG_BLOCK_TOOLS_FROM_PROD AFTER LOGON ON DATABASE DECLARE v_prog SYS.v_$session.program%TYPE; v_module SYS.v_$session.module%TYPE; -- Parametro acrescentado para evitar programa renomeado. owner SYS.v_$session.username%TYPE; v_osuser SYS.v_$session.osuser%TYPE; BEGIN SELECT program, module, username, osuser INTO v_prog, v_module, owner, v_osuser FROM sys.v_$session WHERE audsid = USERENV ('SESSIONID') AND audsid != 0 -- Não verificar conexões SYS AND ROWNUM = 1; -- Processos paralelos terá o mesmo do AUDSID IF UPPER (owner) NOT IN ('cbarbosa', 'oracle', 'administrador', 'IUSR_ISSEC', 'APACHE', 'OEM', 'OEM22', 'SCOTT', 'SI_INFORMTN_SCHEMA', 'TSMSYS', 'WKPROXY', 'WKSYS', 'WMSYS', 'XDB', 'SYS', 'DBSNMP', 'SYSMAN', 'SYSTEM') THEN IFUPPER (v_prog) LIKE '%TOAD%' -- Toad OR UPPER (v_module) LIKE '%TOAD%' -- Toad OR UPPER (v_prog) LIKE '%T.O.A.D%'-- Toad OR UPPER (v_module) LIKE '%T.O.A.D%' -- Toad OR UPPER (v_prog) LIKE '%SQLNAV%'-- SQL Navigator OR UPPER (v_module) LIKE '%SQLNAV%' -- SQL Navigator OR UPPER (v_prog) LIKE '%PLSQLDEV%'-- PLSQL Developer OR UPPER (v_module) LIKE '%PLSQLDEV%' -- PLSQL Developer OR UPPER (v_prog) LIKE '%PL/SQL Developer%'-- PLSQL Developer OR UPPER (v_module) LIKE '%PL/SQL Developer%' -- PLSQL Developer OR UPPER (v_prog) LIKE '%SQL%' -- SQL Developer OR UPPER (v_module) LIKE '%SQL%' -- SQL Developer OR UPPER (v_prog) LIKE '%SQL Developer%' -- SQL Developer OR UPPER (v_module) LIKE '%SQL Developer%' -- SQL Developer OR UPPER (v_prog) LIKE '%BUSOBJ%' -- Business Objects OR UPPER (v_module) LIKE '%BUSOBJ%' -- Business Objects OR UPPER (v_prog) LIKE '%EXCEL%' -- MS-Excel plug-in OR UPPER (v_module) LIKE '%EXCEL%'-- MS-Excel plug-in OR UPPER (v_prog) LIKE '%SQLPLUS%' -- SQLPLUS OR UPPER (v_module) LIKE '%SQLPLUS%' -- SQLPLUS OR UPPER (v_prog) LIKE '%DEVELOPER%' -- Oracle SQL Developer OR UPPER (v_module) LIKE '%DEVELOPER%'-- Oracle SQL Developer OR UPPER (v_prog) LIKE '%IFBLD%'-- Oracle Forms Developer Builder OR UPPER (v_module) LIKE '%IFBLD%' -- Oracle Forms Developer Builder OR UPPER (v_prog) LIKE '%RWBUILDER%'-- Oracle Reports Builder OR UPPER (v_module) LIKE '%RWBUILDER%' -- Oracle Reports Builder OR UPPER (v_prog) LIKE '%RAPTOR%'-- Oracle Raptor OR UPPER (v_module) LIKE '%RAPTOR%' -- Oracle Raptor THEN RAISE_APPLICATION_ERROR ( -2, 'A Ferramenta de desenvolvimento ' || v_module || ' não é permitida na PRODUÇÃO! (' || v_osuser || ' - ' || owner || ' - ' || v_prog || ' - ' || v_module -- Parametro acrescentado. || ')'); END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; / = ERRO
Re: [oracle_br] Trigger de Logon
Caro Berrondo, uso uma trigger AFTER LOGON ON DATABASE, não sei se funciona em todas as versões, no Oracle 10g funciona: CREATE OR REPLACE TRIGGER SYS.BLOCK_TOOLS_FROM_PROD AFTER LOGON ON DATABASE DECLARE v_prog sys.v_$session.program%TYPE; ownersys.v_$session.username%TYPE; v_osuser sys.v_$session.osuser%TYPE; BEGIN SELECT program, username, osuser INTO v_prog, owner, v_osuser FROM sys.v_$session WHERE audsid = USERENV('SESSIONID') AND audsid != 0 -- Don't Check SYS Connections AND rownum = 1; -- Parallel processes will have the same AUDSID's IF UPPER(owner) NOT IN ('usuarios_liberados'.) THEN IF UPPER(v_prog) LIKE '%TOAD%' OR 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 '%SQLPLUS%' OR -- SQLPLUS UPPER(v_prog) LIKE '%DEVELOPER%' OR -- Oracle SQL Developer UPPER(v_prog) LIKE '%IFBLD%' OR -- Oracle Forms Developer Builder UPPER(v_prog) LIKE '%RWBUILDER%' OR -- Oracle Reports Builder UPPER(v_prog) LIKE '%RAPTOR%'-- Oracle Raptor THEN RAISE_APPLICATION_ERROR(-2, 'Development tools are not allowed on PRODUCTION DATABASE! ('||v_osuser||' - '||owner||' - '||v_prog||')'); END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; abraços, Cristian. rberrondo wrote: Preciso fazer uma trigger para evento a nível de banco/instancia. Toda vez que uma conexão é estabelecida, faria a checagem de usuário, aplicação e IP, se não estivesse de acordo com as regras , mataria a sessão. Alguem teria algum scprit para isto? Grata R Berrondo AD -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ Vem aí: ENPO-BR 2006 - Encontro Nacional de Profissionais Oracle VISITE: http://www.enpo-br.org/ - Dia 11/11 Vagas Limitadas __ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html