oci_set_client_identifier

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_client_identifier设置客户端标识符

描述

oci_set_client_identifier(resource $connection, string $client_id): bool

设置由各种数据库组件使用的客户端标识符,以识别以相同数据库用户身份进行身份验证的轻量级应用程序用户。

客户端标识符在执行下一个从 PHP 到数据库的“往返”时向数据库注册,通常在执行 SQL 语句时。

标识符随后可以通过查询获取,例如使用 SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL。例如,V$SESSION 等数据库管理视图也将包含该值。它可以与 DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE 一起使用以进行跟踪,也可以用于审计。

该值可能会在使用相同持久连接的页面请求之间保留。

参数

connection

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

client_id

用户选择的字符串,最多 64 字节长。

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 将客户端标识符设置为应用程序用户

<?php

// 查找应用程序用户的登录名
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');

// 告诉 Oracle 该用户是谁
oci_set_client_identifier($c, $un);

// 下一次往返数据库将附带标识符
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);

// ...

?>

注意

警告

往返陷阱

某些但并非所有 OCI8 函数都会导致往返。启用结果缓存时,查询可能不会导致往返数据库。

参见

添加笔记

用户贡献笔记 1 个笔记

sixd at php dot net
13 年前
在 www.oracle.com/technetwork/articles/dsl/php-web-auditing-171451.html 上有一篇名为“使用 Oracle 数据库进行 PHP Web 审计、授权和监控”的文章,它都是关于使用 oci_set_client_identifier() 的。
To Top