Saturday, February 28, 2009

Profiles : PASSWORD_LOCK_TIME and FAILED_LOGIN_ATTEMPTS

Olá,

Olá como vai tudo bem?Olá como vai tudo bem?...

Pergunto: O que é um PROFILE(perfil) ?

Reposta simplificada:

" Um mecanismo que o Oracle fornece para controlarmos recursos e também limites por usuários.Um PROFILE é um conjunto de limites de recursos."

View : DBA_PROFILES .

Vamos testar dois parâmetros muito interessantes quando usamos PROFILES:

PASSWORD_LOCK_TIME e FAILED_LOGIN_ATTEMPTS .

Vou mostrar na prática,é mais legal!

Os testes serão no Ubuntu 8.10 com Oracle 10g XE (ainda não saiu o 11g rs) em VmWare Workst.

Vamos ao sqlplus:

Criando um profile:

SQL> create profile plcktime_failogatt limit
2 password_lock_time 5/1440
3 failed_login_attempts 2 ;

Profile created.

Criando um usuário para teste:

SQL> create user naum_loga identified by naum_loga
2 profile plcktime_failogatt ;

User created.

Concedendo privilégios:

SQL> grant connect,create session to naum_loga;

Grant succeeded.

SQL>

Verificando na view DBA_USERS:


SQL> select username,account_status,profile
2 from dba_users
3 where username ='NAUM_LOGA';

USERNAME ACCOUNT_STATUS PROFILE
------------------------------ -------------------------------- ------------------------------
NAUM_LOGA OPEN PLCKTIME_FAILOGATT

Com as cobaias criadas agora , então vamos testar?

SQL> disco
Disconnected from Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL> conn naum_loga/senha_errada
ERROR:
ORA-01017: invalid username/password; logon denied

SQL> conn naum_loga/senha_errada
ERROR:
ORA-01017: invalid username/password; logon denied

SQL> conn naum_loga/senha_errada
ERROR:
ORA-28000: the account is locked

Humm. O FAILED_LOGIN_ATTEMPTS funcionou. Mas ,e o parametro PASSWORD_LOCK_TIME ?

SQL> conn sys / as sysdba
Enter password:
Connected.
SQL> select username,account_status from dba_users
2 where username='NAUM_LOGA';

USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
NAUM_LOGA LOCKED(TIMED)

SQL>

Viram a palavra "TIMED" na coluna account_status?

Ok.

Vamos calcular o tempo?

SQL> alter session set nls_date_format='dd/mm/rrrr,hh24:mi:ss';

Session altered.

SQL> select sysdate from dual;

SYSDATE
-------------------
28/02/2009,22:56:49
Agora só nos resta esperar!

Você leitor vai se safar desta hein rs.

(Locutor)

- Cinco minutos depois...

(DBA)

- Fui tomar uma água na cozinha.

Let me see:

SQL> select sysdate from dual;

SYSDATE
-------------------
28/02/2009,23:04:02

SQL>

Dá e sobra rs.

SQL> disco
Disconnected from Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL> conn naum_loga/naum_loga
Connected.

SQL> select 'eu estou logado' naum_loga from dual;

NAUM_LOGA
---------------------------------------------
eu estou logado

SQL>

Vamos exterminar nossas cobaias?

SQL> disco
Disconnected from Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL> conn sys / as sysdba
Enter password:
Connected.
SQL> drop profile PLCKTIME_FAILOGATT;
drop profile PLCKTIME_FAILOGATT
*
ERROR at line 1:
ORA-02382: profile PLCKTIME_FAILOGATT has users assigned, cannot drop without CASCADE

Why?
Ok.I got it.

SQL> drop user naum_loga;

User dropped.

SQL> drop profile PLCKTIME_FAILOGATT;

Profile dropped.

SQL> disco
Disconnected from Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL>

Boa noite a todos,

Júlio César Corrêa

No comments: