Re: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico jlchia...@yahoo.com.br [oracle_br]
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...

2015-05-28 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
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]"  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] 
:

     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]"  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]"  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

|| &#

Re: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico Andre Santos andre.psantos...@gmail.com [oracle_br]
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] :

>
>
> 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]" 
> 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]" 
> 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%' -- Ora

Re: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_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]"  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]"  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-v

Re: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
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]"  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/authori

RE: [oracle_br] Trigger de logon...

2015-05-28 Por tôpico 'Schiavini' et...@schiavini.inf.br [oracle_br]
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,

 

[oracle_br] Trigger de logon...

2015-05-28 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
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 ==
# -- 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/authorizat

[oracle_br] Trigger de Logon.

2015-05-26 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Boa tarde!

Meu oracle é:

banner   full_version
 version_bit ARQUIVAMENTO
 -
--  -
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 -  10.2.0.3.0
 10.2.0.3.0 - 64bi   STARTED

Caros amigos, estou precisando de uma trigger de logon que:

A) permita acesso ao banco apenas do sistema web desenvolvido;
B) permita acesso ao banco apenas dos form´s e report´s;
C) que boqueie programas de desenvolvimento tais como: "'%TOAD%'-- Toad;
'%T.O.A.D%'-- Toad; '%SQLNAV%'-- SQL Navigator; '%PLSQLDEV%'-- PLSQL
Developer; '%BUSOBJ%'-- Business Objects; '%EXCEL%'-- MS-Excel plug-in;
'%SQLPLUS%'-- SQLPLUS; '%DEVELOPER%'-- Oracle SQL Developer; '%IFBLD%'--
Oracle Forms Developer Builder; '%RWBUILDER%'-- Oracle Reports Builder;
'%RAPTOR%' " entre outros;
D) que permita acesso aos programas acima relacionados na alínea 'C' apenas
para os usuários relacionados, ou ainda, máquinas relacionadas (IP´s).

Caso alguns dos amigos possuam uma trigger do tipo ou mais estruturada
ainda, caso possam ajudar-me, ficaria bastante grato. Tenho que implementar
esta rotina na minha plataforma, já pesquisei algumas trigger´s de logon
mas nenhuma que fosse completa ou que se adequasse ao meu cenário, assim,
gostaria da ajuda dos amigos os quais possuem uma maior experiência com a
administração do Oracle.

Obrigado...


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas & Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]



[oracle_br] trigger de logon

2010-05-14 Por tôpico Márcio Ricardo Alves da Silva
Bom dia!


Tenho uma trigger AFTER LOGON ON DATABASE, que funciona no meu ambiente de 
produção bloqueando acesso ao banco por ferramentas terceiras.

Peguei essa mesma trigger e passei para um desenvolvedor adaptá-la para ele. Só 
que essa trigger não está funcionando, coloquei raises na trigger e parece que 
não está sendo disparada a trigger.

O banco é o Oracle XE

CREATE OR REPLACE TRIGGER LOG
  AFTER LOGON ON DATABASE
DECLARE
  v_username SYS.gv_$session.username%TYPE;
  v_program SYS.gv_$session.program%TYPE;
BEGIN
   raise_application_error (-2, 'Entrou 1!' );
  BEGIN
 raise_application_error (-20001, 'Entrou 2!' );
   SELECT username, program
 INTO v_username, v_program
 FROM SYS.gv_$session
WHERE audsid = USERENV ('SESSIONID')
  AND audsid != 0
--  and USERNAME = 'CTE_COMP'
  AND ROWNUM = 1;  
   raise_application_error (-20002, 'Passou SQL!' );  
  if v_username = 'CTE_COMP' THEN
   INSERT INTO (USERNAME, HORA_LOGIN, PROGRAM)
 VALUES(v_username, SYSDATE, v_program);
   commit;
   raise_application_error (-20003, 'Inseriu!' );
  end if; 
  EXCEPTION
WHEN NO_DATA_FOUND THEN
  v_program := '';
  raise_application_error (-20004, 'Erro!' );
  END;
END;


Márcio.









[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] trigger de logon

2010-04-14 Por tôpico Marcos Braga
Olá Miguel,

O que observei de diferente na sua trigger foi a utilização do USERENV.

Ao invés de utilizar:
USERENV('SESSIONID')

Tente:
SYS_CONTEXT('USERENV', 'SESSIONID')

Verifique se pode ser isso.

[]s
Braga

Em 14 de abril de 2010 17:32, Miguel Angelo Rodrigues <
miguelangelo.rodrig...@gmail.com> escreveu:

>
>
> Senhores,
>
> estou com uma trigger para controlar o acesso dos usuario no ambiente de
> produção.
> Ela está funcionando, porem apresenta o erro de sql recursivo.
> A versão do oracle é 10.2.0.3.0.
> Fico grato com a ajuda de vcs.
> Segue a trigger e o erro:
>
> create or replace trigger log_restriction
> after logon on database
> begin
> for x in
> (
> select CLIENT_IDENTIFIER, program
> from sys.v_$session
> where audsid = sys_context('userenv', 'sessionid')
> )
> loop
> if ltrim(rtrim(x.CLIENT_IDENTIFIER)) not in
> ('10.11.7.230','10.11.7.216','10.1.1.48','10.1.1.28'
>
>
> ,'10.1.1.15','127.0.0.1','10.1.1.31','200.198.213.112','200.198.202.105','10.1.1.36')
> or upper(ltrim(rtrim(x.program))) not in (
> 'AETI.EXE'
> ,'SIRCX.EXE'
> ,'EQCASSERVICE.EXE'
> ,'SRVAQUISICAO.EXE'
> ,'SRVSOPHIABIB.EXE'
> ,'SRVBIB.EXE'
> ,'BIBLI.EXE'
> ,'MONC.EXE'
> ,'BIBCONF.EXE')
> then
> raise_application_error( -20999, 'USUÁRIO OU APLICAÇÃO NÃO AUTORIZADO
> PARA USO NO AMBIENTE DE PRODUÇÃO!');
> end if;
> end loop;
> end log_restriction;
> /
>
> ORA-00604: ocorreu um erro no nível 1 SQL recursivo
> ORA-20999: USUÁRIO OU APLICAÇÃO NÃO AUTORIZADO PARA USO NO AMBIENTE DE
> PRODUÇÃO!
>
> --
> Miguel Angelo Rodrigues da Silva
> Administrador de Banco de Dados Oracle
>


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] trigger de logon

2010-04-14 Por tôpico Miguel Angelo Rodrigues
Senhores,

estou com uma trigger para controlar o acesso dos usuario no ambiente de
produção.
Ela está funcionando, porem apresenta o erro de sql recursivo.
A versão do oracle é 10.2.0.3.0.
Fico grato com a ajuda de vcs.
Segue a trigger e o erro:

create or replace trigger log_restriction
after logon on database
begin
for x in
(
select CLIENT_IDENTIFIER, program
from sys.v_$session
where audsid = userenv('sessionid')
)
loop
   if ltrim(rtrim(x.CLIENT_IDENTIFIER)) not in
('10.11.7.230','10.11.7.216','10.1.1.48','10.1.1.28'

,'10.1.1.15','127.0.0.1','10.1.1.31','200.198.213.112','200.198.202.105','10.1.1.36')
   or upper(ltrim(rtrim(x.program))) not in (
 'AETI.EXE'
,'SIRCX.EXE'
,'EQCASSERVICE.EXE'
,'SRVAQUISICAO.EXE'
,'SRVSOPHIABIB.EXE'
,'SRVBIB.EXE'
,'BIBLI.EXE'
,'MONC.EXE'
,'BIBCONF.EXE')
 then
 raise_application_error( -20999, 'USUÁRIO OU APLICAÇÃO NÃO AUTORIZADO
PARA USO NO AMBIENTE DE PRODUÇÃO!');
end if;
end loop;
end log_restriction;
/

ORA-00604: ocorreu um erro no nível 1 SQL recursivo
ORA-20999: USUÁRIO OU APLICAÇÃO NÃO AUTORIZADO PARA USO NO AMBIENTE DE
PRODUÇÃO!

-- 
 Miguel Angelo Rodrigues da Silva
Administrador de Banco de Dados Oracle


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Trigger de logon erro ao se conectar

2009-06-24 Por tôpico Ricardo Duarte
Boa tarde

  Foi criada uma trigger de logon a determinado schema com sucesso porém ao
me conectar com o owner está ocorrendo o seguinte erro:

ORA-00604: error occurred at recursive SQL level 1
ORA-00900: invalid SQL statement
ORA-06512: at line 4

Abaixo os dados da BD:

BANNER

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE10.2.0.4.0  Production
TNS for HPUX: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production


Segue abaixo o script da trigger que foi criada

CREATE OR REPLACE TRIGGER SYS.logon_CDCADMIN_SCHEMA AFTER LOGON ON
CDCADMIN.SCHEMA
DECLARE
  lcommand varchar(200);
  BEGIN
  Execute Immediate 'execute sys.DBMS_LOGMNR_D.BUILD( OPTIONS=>
sys.DBMS_LOGMNR_D.STORE_IN_REDO_LOGS)';
  Execute Immediate 'execute sys.dbms_logmnr.add_logfile(
logfilename => '/oracle/OE2E_T1/log01/log01_1.rdo',options =>
sys.dbms_logmnr.new)';
  Execute Immediate 'execute sys.dbms_logmnr.add_logfile(
logfilename => '/oracle/OE2E_T1/log01/log02_1.rdo',options =>
sys.dbms_logmnr.addfile)';
  Execute Immediate 'execute sys.dbms_logmnr.add_logfile(
logfilename => '/oracle/OE2E_T1/log01/log03_1.rdo',options =>
sys.dbms_logmnr.addfile)';
  Execute Immediate 'execute sys.dbms_logmnr.add_logfile(
logfilename => '/oracle/OE2E_T1/log01/log04_1.rdo',options =>
sys.dbms_logmnr.addfile)';
  Execute Immediate 'execute sys.dbms_logmnr.start_logmnr()';
  END;
/
Agradeço desde já

Ricardo Hoffmann


[As partes desta mensagem que não continham texto foram removidas]



Re: RES: [oracle_br] Trigger de Logon

2006-12-11 Por tôpico Aldenicio Lopes
Caro Colega Carlos Menezes,
   
  Agora ficou bem claro e deu tudo certo.
   
  Obrigado pela dica
   
  Abraços
   
  Aldenicio Lopes

"Carlos A.M. Menezes" <[EMAIL PROTECTED]> escreveu:
  Colega,

Veja se o DOC abaixo resolve seu problema:

Subject: 

ADMINISTER DATABASE TRIGGER Privilege Causes Logon Trigger to Skip Errors

<https://metalink.oracle.com/help/usaeng/Search/search.html#file> Doc ID: 

Note:265012.1

Type: 

BULLETIN

Last Revision Date: 

25-OCT-2005

Status: 

PUBLISHED

PURPOSE
---
This bulletin explains which effect the system privilege ADMINISTER DATABASE 
TRIGGER has on database triggers when errors are raised. 
Similarly, ALTER ANY TRIGGER system privilege causes schema logon triggers to be
skipped on errors.

SCOPE & APPLICATION
---
For DBAs who set up database access control using logon triggers.


ADMINISTER DATABASE TRIGGER Privilege Behavior with Database Logon Trigger
--
Logon triggers are used to mediate database access: when the restrictive 
conditions are not met, an application error with a message is raised that 
causes the logon to be denied.

create or replace trigger on_logon
after logon on database
begin
if USER='TEST' then
raise_application_error(-20002,'LOGON ERROR',true);
end if;
end;
/

If user TEST connects, he is rejected:

SQL> connect test/test
ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-20002: LOGON ERROR
ORA-06512: at line 21

Warning: You are no longer connected to ORACLE.

However, we need to keep at least one user who can still connect when there is 
a problem : a fallback mechanism must exist where an administrative user is 
exempt from such errors of prohibited connection. 

Any user granted the ADMINISTER DATABASE TRIGGER system privilege can still 
connect : instead of getting the error causing the session to be terminated, 
the error is recorded in the alert.log and a trace file in user_dump_dest.

SQL> connect / as sysdba
Connected.
SQL> grant ADMINISTER DATABASE TRIGGER to TEST;
Grant succeeded.

SQL> connect test/test
Connected. 

In alert.log :

Fri Mar 5 12:17:08 2004
Errors in file /ots2/app/oracle/admin/v920/udump/v920_ora_7682.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-20002: LOGON ERROR
ORA-06512: at line 21 

In trace file :

*** SESSION ID:(15.76) 2004-03-05 12:17:08.750
Skipped error 604 during the execution of SYS.ON_LOGON
*** 2004-03-05 12:17:08.768
ksedmp: internal or fatal error
ORA-00604: error occurred at recursive SQL level 1
ORA-20002: LOGON ERROR
ORA-06512: at line 21 

The ADMINISTER DATABASE TRIGGER is by default granted to the following users and
roles (are not listed the options' schemas) :

SQL> select grantee from dba_sys_privs 
2 where privilege='ADMINISTER DATABASE TRIGGER';

GRANTEE
--
DBA --> role
SYS --> user
IMP_FULL_DATABASE --> role
EXFSYS --> user


ALTER ANY TIGGER Privilege Behavior with Schema Logon Trigger
--
Similarly, if the logon trigger is on SCHEMA and the current user is not the 
owner, ALTER ANY TRIGGER privilege is required to be able to connect.

create or replace trigger on_logon
after logon on TEST.schema
begin
raise_application_error(-20002,'LOGON ERROR',true);
end;
/

SQL> connect test/test
ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-20002: LOGON ERROR
ORA-06512: at line 2

Warning: You are no longer connected to ORACLE.

SQL> conn system/manager
Connected.
SQL> grant alter any trigger to scott;
Grant succeeded.

SQL> conn test/test
Connected.

RELATED DOCUMENTS
-
<https://metalink.oracle.com/metalink/plsql/showdoc?db=NOT&id=120712.1&blackframe=1>
 Note 120712.1 Database or Logon Event Trigger becomes Invalid: Who can Connect?
<https://metalink.oracle.com/metalink/plsql/showdoc?db=NOT&id=220491.1&blackframe=1>
 Note 220491.1 How to Prevent Users From Log Into a Database Within Defined 
Periods
<https://metalink.oracle.com/metalink/plsql/showdoc?db=NOT&id=116636.1&blackframe=1>
 Note 116636.1 ORA-4098 or ORA-4045 logging on to database having AFTER LOGON 
event trigger

Abraços,

Carlos Alfredo M. de Menezes

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Aldenicio 
Lopes
Enviada em: quinta-feira, 7 de dezembro de 2006 11:43
Para: oracle 2 Oracle 2
Cc: oracle 1 Oracle1
Assunto: [oracle_br] Trigger de Logon

Boa tarde amigos,

A algum tempo atrás postei uma pergunta sobre como impedir um conexão no banco, 
após satisfazer algumas condições através de uma trigger de logon. Um colega da 
lista me indicou que colocasse o seguinte:
" if  then
raise_application_error(-20001, 'Usuario sem Permissao de Acesso!!!');
end if; "
Acontece o seguinte, quando f

RES: [oracle_br] Trigger de Logon

2006-12-07 Por tôpico Carlos A.M. Menezes
Colega,

Veja se o DOC abaixo resolve seu problema:

 


Subject: 

ADMINISTER DATABASE TRIGGER Privilege Causes Logon Trigger to Skip Errors


 

 <https://metalink.oracle.com/help/usaeng/Search/search.html#file> Doc ID: 

Note:265012.1

Type: 

BULLETIN


 

Last Revision Date: 

25-OCT-2005

Status: 

PUBLISHED

 
PURPOSE
---
This bulletin explains which effect the system privilege ADMINISTER DATABASE 
TRIGGER has on database triggers when errors are raised. 
Similarly, ALTER ANY TRIGGER system privilege causes schema logon triggers to be
skipped on errors.
 
SCOPE & APPLICATION
---
For DBAs who set up database access control using logon triggers.
 
 
ADMINISTER DATABASE TRIGGER Privilege Behavior with Database Logon Trigger
--
Logon triggers are used to mediate database access: when the restrictive 
conditions are not met, an application error with a message is raised that 
causes the logon to be denied.
 
create or replace trigger on_logon
after logon on database
begin
if USER='TEST' then
   raise_application_error(-20002,'LOGON ERROR',true);
end if;
   end;
/
 
If user TEST connects, he is rejected:
 
SQL> connect test/test
ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-20002: LOGON ERROR
ORA-06512: at line 21
 
Warning: You are no longer connected to ORACLE.
 
However, we need to keep at least one user who can still connect when there is 
a problem : a fallback mechanism must exist where an administrative user is 
exempt from such errors of prohibited connection. 
 
Any user granted the ADMINISTER DATABASE TRIGGER system privilege can still 
connect : instead of getting the error causing the session to be terminated, 
the error is recorded in the alert.log and a trace file in user_dump_dest.
 
SQL> connect / as sysdba
Connected.
SQL> grant ADMINISTER DATABASE TRIGGER to TEST;
Grant succeeded.
 
SQL> connect test/test
Connected. 
 
In alert.log :
 
Fri Mar  5 12:17:08 2004
Errors in file /ots2/app/oracle/admin/v920/udump/v920_ora_7682.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-20002: LOGON ERROR
ORA-06512: at line 21
 
In trace file :
 
*** SESSION ID:(15.76) 2004-03-05 12:17:08.750
Skipped error 604 during the execution of SYS.ON_LOGON
*** 2004-03-05 12:17:08.768
ksedmp: internal or fatal error
ORA-00604: error occurred at recursive SQL level 1
ORA-20002: LOGON ERROR
ORA-06512: at line 21  
 
The ADMINISTER DATABASE TRIGGER is by default granted to the following users and
roles (are not listed the options' schemas) :
 
SQL> select grantee from dba_sys_privs
  2  where privilege='ADMINISTER DATABASE TRIGGER';
 
GRANTEE
--
DBA--> role
SYS--> user
IMP_FULL_DATABASE  --> role
EXFSYS --> user
 
 
ALTER ANY TIGGER Privilege Behavior with Schema Logon Trigger
-
Similarly, if the logon trigger is on SCHEMA and the current user is not the 
owner, ALTER ANY TRIGGER privilege is required to be able to connect.
 
create or replace trigger on_logon
after logon on TEST.schema
begin
   raise_application_error(-20002,'LOGON ERROR',true);
end;
/
 
SQL> connect test/test
ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-20002: LOGON ERROR
ORA-06512: at line 2
 
Warning: You are no longer connected to ORACLE.
 
SQL> conn system/manager
Connected.
SQL> grant alter any trigger to scott;
Grant succeeded.
 
SQL> conn test/test
Connected.
 
RELATED DOCUMENTS
-
 
<https://metalink.oracle.com/metalink/plsql/showdoc?db=NOT&id=120712.1&blackframe=1>
 Note 120712.1 Database or Logon Event Trigger becomes Invalid: Who can Connect?
 
<https://metalink.oracle.com/metalink/plsql/showdoc?db=NOT&id=220491.1&blackframe=1>
 Note 220491.1 How to Prevent Users From Log Into a Database Within Defined 
Periods
 
<https://metalink.oracle.com/metalink/plsql/showdoc?db=NOT&id=116636.1&blackframe=1>
 Note 116636.1 ORA-4098 or ORA-4045 logging on to database having AFTER LOGON 
event trigger

 

Abraços,

 

Carlos Alfredo M. de Menezes

 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Aldenicio 
Lopes
Enviada em: quinta-feira, 7 de dezembro de 2006 11:43
Para: oracle 2 Oracle 2
Cc: oracle 1 Oracle1
Assunto: [oracle_br] Trigger de Logon

 

Boa tarde amigos,

A algum tempo atrás postei uma pergunta sobre como impedir um conexão no 

[oracle_br] Trigger de Logon

2006-12-07 Por tôpico Aldenicio Lopes
Boa tarde amigos,
   
  A algum tempo atrás postei uma pergunta sobre como impedir um conexão no 
banco, após satisfazer algumas condições através de uma trigger de logon. Um 
colega da lista me indicou que colocasse o seguinte:
  " if  then
raise_application_error(-20001, 'Usuario sem Permissao de Acesso!!!');
  end if; "
Acontece o seguinte, quando faço uma conexão com um usuário que satisfaz a 
condição da trigger, ele conecta normalmente sem mostrar a mensagem do 
raise_application. Verifiquei que a mensagem é logada somente no Alert.log, ou 
seja:
  Errors in file c:\oracle\admin\test\udump\test_ora_6020.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-20001: Usuario sem Permissao de Acesso!!!
ORA-06512: at line 30
   
  Na realidade eu gostaria que essa mensagem aparecesse para o usuário e 
impedisse qualquer tipo de acesso. Seria possível?
   
  Oracle 9.2.0.6
  Windows 2003 Server
   
  Desde já agradeço
   
  Aldenicio Lopes


-
 Yahoo! Search
 Música para ver e ouvir: You're Beautiful, do James Blunt

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Trigger de Logon

2006-10-06 Por tôpico Cristian
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

 




[oracle_br] Trigger de Logon

2006-10-06 Por tôpico rberrondo
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