PHP大会日本2024

oci_password_change

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

oci_password_change更改Oracle用户的密码

描述

oci_password_change(
    资源 $connection,
    字符串 $username,
    字符串 $old_password,
    字符串 $new_password
): 布尔值
oci_password_change(
    字符串 $database_name,
    字符串 $username,
    字符串 $old_password,
    字符串 $new_password
): 资源

更改用户名为 $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_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_pw . "\n";
}
}
}

if (!
$c) { // 原来的错误不是28001,或者密码更改失败
$m = oci_error();
trigger_error('无法连接到数据库:'. $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