PHP 8.4.6 Released!

oci_password_change

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_password_changeAltera a senha do usuário do Oracle

Descrição

oci_password_change(
    resource $connection,
    string $username,
    string $old_password,
    string $new_password
): bool
oci_password_change(
    string $database_name,
    string $username,
    string $old_password,
    string $new_password
): resource

Altera a senha do usuário username.

A função oci_password_change() é mais útil para scripts de linha de comando PHP, ou quando conexões não persistentes são usadas em toda a aplicação PHP.

Parâmetros

connection

Um identificador de conexão Oracle, retornado por oci_connect() ou oci_pconnect().

username

O nome de usuário do Oracle.

old_password

A senha antiga.

new_password

A nova senha a ser definida.

database_name

O nome do banco de dados.

Valor Retornado

Quando database_name é fornecido, oci_password_change() retorna true em caso de sucesso, ou false em caso de falha. Quando connection é fornecido, oci_password_change() retorna o recurso de conexão em caso de sucesso, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de oci_password_change() alterando a senha de um usuário já conectado

<?php

$dbase
= 'localhost/orcl';
$user = 'cj';
$current_pw = 'welcome';
$new_pw = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
oci_password_change($c, $user, $current_pw, $new_pw);
echo
"New password is : " . $new_pw . "\n";

?>

Exemplo #2 Exemplo de oci_password_change() conectando e alterando a senha em uma só etapa

<?php

$dbase
= 'localhost/orcl';
$user = 'cj';
$current_pw = 'welcome';
$new_pw = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
if (!
$c) {
$m = oci_error();
if (
$m['code'] == 28001) { // "ORA-28001: the password has expired"
// Faz login e redefine a senha ao mesmo tempo
$c = oci_password_change($dbase, $user, $current_pw, $new_pw);
if (
$c) {
echo
"A nova senha é : " . $new_pw . "\n";
}
}
}

if (!
$c) { // The original error wasn't 28001, or the password change failed
$m = oci_error();
trigger_error('Não foi possível conectar ao banco de dados: '. $m['message'], E_USER_ERROR);
}

// Usando a conexão $c
// ...

?>

Notas

Nota:

A alteração da senha com esta função ou diretamente no Oracle deve ser feita com cuidado. Isso porque as aplicações PHP podem continuar a reutilizar conexões persistentes com sucesso autenticando-se com a senha antiga. A prática recomendada é reiniciar todos os servidores web sempre que a senha do usuário for alterada.

Nota:

Ao atualizar as bibliotecas do cliente Oracle ou o banco de dados de uma versão anterior à 11.2.0.3 para a versão 11.2.0.3 ou superior, oci_password_change() pode gerar o erro "ORA-1017: invalid username/password", a menos que as versões do cliente e do servidor sejam atualizadas ao mesmo tempo.

Nota:

A segunda sintaxe oci_password_change() está disponível desde a versão 1.1 do OCI8.

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top