Alterando a senha com o Oracle SQL Developer

139

Muitos dos meus usuários não usam SQLPlus. Eu não posso dar a eles alterar usuário. Expiramos senhas a cada 60 dias.

Não consigo obter o comando "senha" do SQLPlus para trabalhar no desenvolvedor do SQL.

  1. Quando pressiono executar, recebo um erro de comando inválido
  2. Quando eu clico em executar script, nada acontece.

Não quero escrever um pacote para alterar suas senhas, pois temos muitos bancos de dados. Eu tenho uma opção melhor?

Prumo
fonte
4
Você não pode alterar uma senha expirada no SQL Developer via comando SQL. Não é suportado na pilha JDBC. Você precisa das bibliotecas OCI para isso. O desenvolvedor do SQL tem uma opção para redefinir a senha expirada por meio da pilha OCI, se ela estiver instalada corretamente. Veja minha resposta para mais detalhes.
precisa saber é
Você pode fazer isso com o SQL Developer 4.1.0.17. Veja minha resposta abaixo.
Análise difusa

Respostas:

189

A sintaxe correta para atualizar a senha usando o SQL Developer é:

alter user user_name identified by new_password replace old_password ;

Você pode verificar mais opções para este comando aqui: ALTER USER-Oracle DOCS

Americo Savinon
fonte
29
Além disso, pode ser necessário agrupar as senhas entre aspas duplas para escapar de qualquer caractere especial na senha. Por exemplo, alter user __user_name__ identified by "newp@ss!!!" replace "oldp@ss!!!"Mais informações em asktom.oracle.com/pls/asktom/…
Bryant Bowman
6
Se seu pwd expirou, boa sorte para fazer o login. Respostas Uma pergunta, mas não a pergunta.
Ben George
105

Em uma planilha SQL:

  • Digite "senha" (sem as aspas)

  • Destaque, pressione CTRL+ ENTER.

  • A tela de alteração de senha é exibida.

Niall
fonte
4
Você também pode fazer "senha someusername"
Anna
3
Suponho que você queira dizer a ação "Executar declaração". O atalho padrão parece ser Ctrl + Enter .
Álvaro González
70

O SQL Developer possui uma opção de redefinição de senha interna que pode funcionar para sua situação. Requer a adição do Oracle Instant Client à estação de trabalho. Quando o cliente instantâneo estiver no caminho quando o desenvolvedor do SQL for iniciado, você terá a seguinte opção ativada:

Desenvolvedor SQL: menu suspenso mostrando a opção de redefinição de senha

O Oracle Instant Client não precisa de privilégios de administrador para instalar, apenas a capacidade de gravar em um diretório e adicioná-lo ao caminho do usuário. A maioria dos usuários tem privilégios para fazer isso.

Recapitulação: Para usar a Redefinição de senha no Oracle SQL Developer:

  1. Você deve descompactar o Oracle Instant Client em um diretório
  2. Você deve adicionar o diretório Oracle Instant Client ao caminho do usuário
  3. Você deve reiniciar o Oracle SQL Developer

Nesse ponto, você pode clicar com o botão direito do mouse em uma fonte de dados e redefinir sua senha.

Consulte http://www.thatjeffsmith.com/archive/2012/11/resetting-your-oracle-user-password-with-sql-developer/ para obter uma explicação completa

Consulte também o comentário nos documentos da Oracle: http://docs.oracle.com/cd/E35137_01/appdev.32/e35117/dialogs.htm#RPTUG41808

Uma configuração alternativa para o SQL Developer (testado na versão 4.0.1) reconhecer e usar o Instant Client no OS X é:

  1. Defina o caminho para o Instant Client em Preferências -> Banco de Dados -> Avançado -> Usar o Oracle Client
  2. Verifique se o Instance Client pode ser carregado com êxito usando as opções Configurar ... -> Testar ... na caixa de diálogo de preferências
  3. (OS X) Consulte esta pergunta para resolver problemas relacionados à variável de ambiente DYLD_LIBRARY_PATH. Usei o seguinte comando e reiniciei o SQL Developer para pegar a alteração:

    $ launchctl setenv DYLD_LIBRARY_PATH / caminho / para / oracle / instantclient_11_2

Frobbit
fonte
1
Não disponível para todos os usuários 80 (
Keng 25/02
hmmm, parece não funcionar para mim. Gostaria de saber se a atualização do PATH é realmente tudo o que você precisa fazer em um Mac.
fudo
Eu uso um mac em casa, mas um pc com windows no trabalho. Vamos mudar para macs em breve. Se eu encontrar os detalhes, eu os publicarei.
Frobbit
1
O Google é muito útil :-) com ele eu encontrei: oracle.com/technetwork/topics/linuxx86-64soft-092277.html, que pode ficar obsoleto. Para fazer o google novamente, use goo.gl/kU5ZdM
Frobbit:
1
Obrigado, funcionou no Windows 7 de 64 bits. Eu tive que passar por uma etapa extra (que é a mesma que a primeira etapa na configuração do OS X acima), caso contrário, a opção 'redefinir senha' permanecerá acinzentada. 4. Defina o caminho como Instant Client em Preferences -> Database -> Advanced -> Use Oracle Client
marciowerner
24

Seus usuários ainda podem alterar suas senhas "altere apenas o usuárioNomeDoUsuário identificado por nova senha ". Eles não precisam ter o privilégio ALTER USER para alterar sua própria senha.

dpbradley
fonte
16

Dependendo das configurações de administrador, pode ser necessário especificar sua senha antiga usando a opção REPLACE

alter user <username> identified by <newpassword> replace <oldpassword> 
Gerry Gurevich
fonte
nova senha e senha antiga podem ser iguais?
Haris Mehmood
2
Esta resposta está errada. newpassword e oldpassword são transpostas. Use stackoverflow.com/a/10809140/643483 em vez disso
Aaron Kurtzhals
1
@AaronKurtzhals A resposta que você menciona diz a mesma coisa que a minha resposta. Consulte os
Gerry Gurevich
O principal a ser adicionado (o que foi feito pelos @pgs em sua resposta para essa mesma pergunta) é que você pode precisar colocar aspas nas senhas se elas contiverem caracteres especiais.
Gerry Gurevich
10

Para deixar um pouco claro:

Se o nome de usuário: abcdef e a senha antiga: a123b456, nova senha: m987n654

alterar o usuário abcdef identificado por m987n654 substitua a123b456 ;

spazzo
fonte
9

Sei que existem muitas respostas, mas encontrei uma solução que pode ser útil para alguns. Corri para o mesmo problema, estou executando o oracle sql develop no meu computador local e tenho vários usuários. Por acaso lembro a senha de um dos meus usuários e a usei para redefinir a senha de outros usuários.

Passos:

  1. conectar-se a um banco de dados usando um usuário e senha válidos; no meu caso, todos os meus usuários expiraram, exceto "sistema" e lembro-me dessa senha

  2. encontre o nó "Other_users" dentro da árvore, conforme a imagem abaixo exibe

insira a descrição da imagem aqui

3. dentro da árvore "Outros usuários", localize os usuários que você deseja redefinir a senha e clique com o botão direito do mouse na nota e selecione "Editar usuários"

insira a descrição da imagem aqui

4. preencha a nova senha na caixa de diálogo editar usuário e clique em "Aplicar". Verifique se desmarcou "Senha expirada (o usuário deve alterar o próximo login)".

insira a descrição da imagem aqui

E isso funcionou para mim. Não é tão bom quanto outra solução, porque você precisa fazer login em pelo menos uma conta, mas funciona.

Saad A
fonte
7

Confirmei que isso funciona no SQL Developer 3.0.04. Nossas senhas precisam ter um caractere especial; portanto, a string com aspas duplas é necessária no nosso caso. Obviamente, isso só funciona se a senha ainda não tiver expirado e você estiver conectado no momento.

ALTER USER MYUSERID
IDENTIFIED BY "new#password"
REPLACE "old#password"
pgs
fonte
3
Esta resposta está errada. newpassword e oldpassword são transpostas. Use stackoverflow.com/a/10809140/643483 em vez disso
Aaron Kurtzhals
3

Tente esta solução se a opção Redefinir senha (do SQL Developer) não funcionou :

Etapa 1: Abra Executar linha de comando do SQL (no menu Iniciar, que acompanha o pacote de instalação do SQL Developer)

Etapa 2: execute os seguintes comandos:

insira a descrição da imagem aqui

Nota: Se a senha já tiver expirado, a Changing password for <user>opção virá automaticamente.

Leo
fonte
2

A opção de redefinição de senha interna pode não funcionar para o usuário. Nesse caso, a senha pode ser redefinida usando a seguinte instrução SQL:

ALTER user "user" identified by "NewPassword" replace "OldPassword";
user2689487
fonte
1

você pode encontrar o usuário na tabela DBA_USERS como

SELECT profile
FROM dba_users
WHERE username = 'MacsP'

Agora vá para sys / system (administrador) e use query

ALTER USER PRATEEK
IDENTIFIED BY "new_password"
REPLACE "old_password"

Para verificar o status da conta, basta acessar

SELECT * FROM DBA_USERS.

e você pode ver o status do seu usuário.


fonte
1

Agora você pode fazer isso no SQL Developer 4.1.0.17 , sem necessidade de PL / SQL, supondo que você tenha outra conta com privilégios administrativos:

  1. Crie uma conexão com o banco de dados no SQL Developer 4.1.0.17 com um usuário administrativo alternativo
  2. Expanda a seção "Outros usuários" uma vez conectado e clique com o botão direito do mouse no usuário cuja senha expirou. Escolha "Editar usuário".
  3. Desmarque a caixa de seleção "Senha expirada ...", digite uma nova senha para o usuário e pressione "Salvar".
  4. Tarefa concluída! Você pode testar conectando-se ao usuário cuja senha expirou, para confirmar que agora é válida novamente.
Análise Fuzzy
fonte
1

Há outra maneira de redefinir a senha através do prompt de comando ...

1) Vá para a Pasta do banco de dados Oracle (no meu caso, Oracle Database 11g Express Edition) no menu Iniciar.

2) Dentro dessa pasta, clique em "Executar Linha de Comando SQL"

Imagem da Pasta do Banco de Dados Oracle

3) Digite " conectar nome de usuário / senha " (seu nome de usuário e senha antiga sem as aspas)

4) A mensagem exibida é ...

ERRO: ORA-28001: a senha expirou

Alterando a senha para hr

-> Nova senha:

Digite o nome de usuário, a imagem da senha

5) Digite a nova senha

6) Redigite a nova senha

7) A mensagem exibida é ...

Senha alterada Conectado.

SQL>

8) Vá para desenvolvedor sql -> digite a nova senha -> conectado

Suchitra Phadke
fonte
Enquanto o PO ainda estiver ativo, cinco anos após a pergunta, a resposta pode não ser mais relevante.
Strawberry
@Trawberry se responder à pergunta, por que não? !!
Muhammed Refaat 22/11/2015
1

Uma observação para pessoas que podem não ter a senha definida para sysdba ou sys e usam regularmente um cliente de terceiros. Aqui estão algumas informações sobre como fazer login na linha de comando sqlplus sem uma senha que me ajudou. Estou usando o fedora 21 a propósito.

locate sqlplus

No meu caso, o sqlplus está localizado aqui:

/u01/app/oracle/product/11.2.0/xe/config/scripts/sqlplus.sh

Agora corra

cd /u01/app/oracle/product/11.2.0/xe/config/scripts
./sqlplus.sh / as sysdba

Agora você precisa se conectar ao banco de dados com suas credenciais antigas. Você pode encontrar o modelo fornecido pelo Oracle em sua saída:

Use "connect username/password@XE" to connect to the database.

No meu caso, eu tenho o usuário "oracle" com a senha "oracle", então minha entrada se parece com

connect oracle/oracle@XE

Feito. Agora digite sua nova senha duas vezes. Então, se você não quiser que sua senha expire mais, poderá executar

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Sorokin Andrey
fonte