Recentemente, enfrentei uma situação em que um usuário relatava que sua senha não havia sido alterada, mas, ainda assim, não conseguia acessar o banco de dados. Para esclarecer o ocorrido, precisei verificar diretamente no Oracle a data da última alteração de senha registrada.
Essa informação está armazenada na tabela interna SYS.USER$
, na coluna PTIME
, que registra a última alteração de senha do usuário. A partir da versão 19 do Oracle Database, também é possível consultar a coluna PASSWORD_CHANGE_DATE
na visão DBA_USERS
.
Vou demonstrar como identificar e validar essas informações usando o usuário PM
como exemplo.
Consultando a última alteração de senha
01. Para verificar a última alteração de senha de um usuário, use a seguinte consulta
SQL> SELECT name, ctime, ptime
FROM sys.user$
WHERE name = 'PM';
NAME CTIME PTIME
---------- ------------------- -------------------
PM 18/11/2024 16:59:23 18/11/2024 16:59:23
SQL> --A partir da versão 19 também é na DBA_USERS
SQL>
SQL> select PASSWORD_CHANGE_DATE from dba_users where username = 'PM';
PASSWORD_CHANGE_DATE
--------------------
18/11/2024 16:59:23
SQL>
sys.user$
Coluna | Descrição | Valor |
NAME | Nome do usuário | PM |
CTIME | Data e hora de criação do usuário | 18/11/2024 16:59:23 |
PTIME | Data e hora da última alteração de senha | 18/11/2024 16:59:23 |
CTIME
: O usuário PM
foi criado em 18/11/2024 às 16:59:23
.
PTIME
: Mostra que a senha foi alterada no mesmo momento da criação, o que é normal, já que o Oracle registra a configuração inicial da senha como uma alteração.
02. Alterando a senha para atualizar o PTIME
SQL> ALTER USER PM IDENTIFIED BY pm;
User altered.
SQL>
03. Após isso, execute novamente a consulta
SQL> SELECT name, ctime, ptime
FROM sys.user$
WHERE name = 'PM';
NAME CTIME PTIME
---------- ------------------- -------------------
PM 18/11/2024 16:59:23 10/01/2025 11:22:29
SQL>
SQL> --A partir da versão 19 também é na DBA_USERS
SQL>
SQL> select PASSWORD_CHANGE_DATE from dba_users where username = 'PM';
PASSWORD_CHANGE_DATE
--------------------
10/01/2025 11:22:29
SQL>
SQL> !date
Fri Jan 10 11:22:35 -03 2025
sys.user$
Coluna | Descrição | Valor |
NAME | Nome do usuário | PM |
CTIME | Data e hora de criação do usuário | 18/11/2024 16:59:23 |
PTIME | Data e hora da última alteração de senha | 10/01/2025 11:22:29 |
CTIME
: Não muda, pois indica a data original de criação do usuário.
PTIME
: Atualizado para refletir a última alteração de senha (10/01/2025 11:22:29
).
A coluna PTIME
da tabela SYS.USER$
registra a última vez que a senha de um usuário foi alterada. É uma informação simples, mas útil para resolver problemas de acesso ou realizar auditorias de segurança
e … zas
⚽🐧#20250110 #DBASobrinho #GuinaNãoTinhaDó #BóBó #CaceteDeAgulha #OracleACE ⚽🐧