Php/docs/function.oci-password-change

提供:Dev Guides
< Php
移動先:案内検索

oci_password_change

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

oci_password_changeOracle ユーザーのパスワードを変更する


説明

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

oci_password_change ( string $dbname , string $username , string $old_password , string $new_password ) : resource

ユーザー username のパスワードを変更します。

oci_password_change() が役立つのは、 PHP コマンドラインスクリプトで使う場合や PHP アプリケーションで持続的でない接続を使う場合です。


パラメータ

connection
oci_connect() あるいは oci_pconnect() が返す Oracle 接続 ID。
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 password is : " . $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 password is : " . $new_pw . "\n";        }    }}if (!$c) {  // 28001 以外のエラーが発生したり、パスワードの変更に失敗したりした場合    $m = oci_error();    trigger_error('Could not connect to database: '. $m['message'], E_USER_ERROR);}// 接続 $c が使えます...?>

注意

注意:

この関数を使うにせよ Oracle から直接操作するにせよ、 パスワードを変更する際には十分注意しましょう。 持続的接続を使っている場合、PHP アプリケーションからは古いパスワードでも認証できてしまいます。 ユーザーのパスワードを変更したら、ウェブサーバーをすべて再起動させるのがお勧めの方法です。

注意:

Oracle クライアントライブラリあるいはデータベースを 11.2.0.3 より前のリリースから 11.2.0.3 以降のバージョンにアップグレードするときには、クライアントとサーバーのバージョンを同時に上げないと oci_password_change() は "ORA-1017: invalid username/password" エラーとなってしまいます。

注意:

oci_password_change() の 2 番目の書式は OCI8 バージョン 1.1 から利用可能です。

注意:

PHP バージョン 5.0.0 以前では、代わりに ocipasswordchange() を使用しなければなりません。 まだこの名前を使用することができ、下位互換性のため oci_password_change() への別名として残されていますが、 推奨されません。