oci_password_change

(PHP 5, PHP 7, 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() для обратной совместимости, вы можете продолжать использовать это имя, однако это не рекомендуется.

Коментарии

Changing the password either with this function or directly in Oracle should be done carefully when PHP applications are involved. This is because  persistent connections may continue to work using the "old" password. The best practice is to restart all web servers whenever the user password is changed.

Oci_password_change is most useful for PHP command-line scripts, or when non-persistent connections are used everywhere in a PHP application.

    Поддержать сайт на родительском проекте КГБ