Picture of Roberto Sobrinho
Roberto Sobrinho

10/01/2025

Como encontrar a última alteração de senha de um USER no Oracle

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$

ColunaDescriçãoValor
NAMENome do usuárioPM
CTIMEData e hora de criação do usuário18/11/2024 16:59:23
PTIMEData e hora da última alteração de senha18/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$

ColunaDescriçãoValor
NAMENome do usuárioPM
CTIMEData e hora de criação do usuário18/11/2024 16:59:23
PTIMEData e hora da última alteração de senha10/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  ⚽🐧


Compartilhe

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print

Pesquisar

Roberto Sobrinho

Sou Roberto Fernandes Sobrinho, também conhecido como Sobrinho DBA , pós graduado em “Architecture and Database Administration”, entusiasta, dedicado e com 20 anos de experiência com Oracle Database e suas diversas distribuições e variações.

Oracle ACE Associate

2025

Specialist

Exadata Database Machine X9M

Professional

Oracle Database Administration

Professional

Oracle Database 19c: RAC, ASM, & Grid Infra Administrator

Professional

Oracle Autonomous Database Cloud

Professional

Oracle Cloud Database Migration and Integration

Professional

Oracle Database PL/SQL Developer

Associate

Oracle Cloud Infrastructure Architect

Associate

Oracle Cloud Infrastructure Foundations

Categorias

Categorias

Tags

Como encontrar a última alteração de senha de um USER no Oracle