Oracle logo brasil

Hoje pela manhã tive que acessar um banco Oracle antigo que já tinha esquecido a senha… E agora, pensei…

Lembrei que se você tem direitos de administrador no servidor do Oracle, pode acessar usando a conta do próprio sistema operacional.

sql> connect /as sysdba
ERROR:
ORA-01031: insufficient privileges.

Humm, não deu certo.. o que será??? Consultando o metalink do Oracle peguei a seguinte informação:

The ‘OSDBA’ and ‘OSOPER’ groups on NT are simply groups with the name “ORA_DBA”, “ORA_OPER”, “ORA_sid_DBA” or “ORA_sid_OPER”, where ‘sid’ is the instance name.
Eg: To make a user an administrative user simply:

a) Certifique-se que no arquivo SQLNET.ORA esteja a linha: SQLNET.AUTHENTICATION_SERVICES = (NTS)
b) Crie um usuário local no servidor (fora do domínio), não é um usuário com nome “local” pelo amor de Deus!
c) Crie um grupo local (se não existir) ORA_DBA ou ORA_sid_DBA onde SID é o SID do banco (em maiúsculas).
d) Adicione o usuário ao grupo ORA_DBA ou ORA_sid_DBA
e) Logue no Windows com este usuário e tente dentro do sqlplus “connect / as sysdba”

Depois basta alterar a senha do usuário sys:

alter user sys identified by ;

Acredito que funcione mais ou menos assim no Unix, basta saber qual grupo de acesso o usuário deve estar.