OCI8 Функции
PHP Manual

oci_password_change

(PHP 5, PECL OCI8 >= 1.1.0)

oci_password_change — Изменяет пароль пользователя Oracle

Описание

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

Изменяет пароль пользователя, указанного в username.

Функция oci_password_change() особенно полезна для скриптов PHP командной строки, или при использовании непостоянных соединений во всем приложении PHP.

Список параметров

connection

Идентификатор соединения, возвращаемый функцией oci_connect() или oci_pconnect().

username

Имя пользователя Oracle.

old_password

Старый пароль.

new_password

Новый пароль.

dbname

Имя базы данных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_password_change() с изменением пароля уже подключенного пользователя

<?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_pw . "\n";

?>

Пример #2 Пример использования oci_password_change() с подключением и изменением пароля одновременно

<?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"
        // Подключение и сброс пароля одновременно
        
$c = oci_password_change($dbase, $user, $current_pw, $new_pw);
        if (
$c) {
            echo 
"Новый пароль : " . $new_pw . "\n";
        }
    }
}

if (!
$c) {  // Ошибка не совпадала с 28001, или не получилось изменить пароль
    
$m = oci_error();
    
trigger_error('Не удалось подключиться к базе данных: '. $m['message'], E_USER_ERROR);
}

// Использование подключения $c
...

?>

Примечания

Замечание:

Изменение пароля с помощью этой функции или непосредственно в Oracle должно выполняться аккуратно, поскольку PHP-приложение может продолжать использовать в постоянных соединениях данные аутентификации последнего удачного подключения, которые уже устарели. Наилучшим решением может быть перезапуск всех веб-серверов после смены пароля.

Замечание:

При обновлении библиотки клиента Oracle или базы данных от версии установки до версии 11.2.0.3 и выше функция oci_password_change() может вернуть ошибку "ORA-1017: invalid username/password" (Неверные имя пользователя/пароль) если версии и клиента и сервера обновлены в одно время.

Замечание:

Второй набор параметров функции oci_password_change() доступен начиная с версии OCI8 1.1.

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocipasswordchange(). В PHP 5.0.0 и выше ocipasswordchange() является алиасом oci_password_change() для обратной совместимости, вы можете продолжать использовать это имя, однако это не рекомендуется.


OCI8 Функции
PHP Manual