oci_password_change

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

oci_password_change更改 Oracle 用户的密码

描述

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

更改具有 username 的用户的密码。

函数 oci_password_change() 最适合 PHP 命令行脚本,或者当在整个 PHP 应用程序中使用非持久连接时。

参数

connection

一个 Oracle 连接标识符,由 oci_connect()oci_pconnect() 返回。

username

Oracle 用户名。

old_password

旧密码。

new_password

要设置的新密码。

database_name

数据库名称。

返回值

当提供 database_name 时,oci_password_change() 在成功时返回 true,失败时返回 false。当提供 connection 时,oci_password_change() 在成功时返回连接资源,失败时返回 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: 密码已过期"
// 同时登录并重置密码
$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 应用程序可能会继续成功地使用旧密码验证来重用持久连接。最佳实践是在更改用户密码时重新启动所有 Web 服务器。

注意:

如果将 Oracle 客户端库或数据库从 11.2.0.3 之前的版本升级到 11.2.0.3 或更高版本,除非客户端和服务器版本同时升级,否则 oci_password_change() 可能会出现错误“ORA-1017: 无效的用户名/密码”。

注意:

第二个 oci_password_change() 语法从 OCI8 版本 1.1 开始可用。

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top