PHP Conference Nagoya 2025

oci_set_client_identifier

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

oci_set_client_identifierEstablece el identificador del cliente

Descripción

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

Establece el identificador del cliente usado por varios componentes de la base de datos para identificar usuarios de aplicaciones ligeras que se identificaron con el mismo usuario de base de datos.

El identificador del cliente se registra con la base de datos cuando ocurra el siguiente "viaje de ida y vuelta" desde PHP a la base de datos, normalemnte cuando una sentencia SQL es ejecutada.

El identificador puede ser consultado subsiguientemente, por ejemplo, con SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL. Las vistas de administración de la base de datos como V$SESSION también contendrán el valor. Se puede usar con DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE para rastreo y también para auditoría.

El valor podría mantenerse entre peticiones de páginas que usen la misma conexión persistente.

Parámetros

connection

Un identificador de conexión de Oracle, devuelto por oci_connect(), oci_pconnect(), o oci_new_connect().

client_identifier

La cadena elegida por el usuario, hasta 64 bytes de longitud.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Establecer el identificador del cliente para el usuario de la aplicación

<?php

// Buscar el nombre de identificación de usuario de la aplicación
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');

// Indicar a Oracle qué usuario es
oci_set_client_identifier($c, $un);

// El siguiente viaje de ida y vuelta a la base de datos adjuntará el identificador
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);

// ...

?>

Notas

Precaución

Problema con los viajes de ida y vuelta

Algunas, pero no todas, las funciones de OCI8 causan viajes de ida y vuelta. Estos podrían no ocurrir con las consultas cuando está habilitado el almacenamiento en caché de resultados.

Ver también

add a note

User Contributed Notes 1 note

up
1
sixd at php dot net
13 years ago
There's an article "PHP Web Auditing, Authorization and Monitoring with Oracle Database" at www.oracle.com/technetwork/articles/dsl/php-web-auditing-171451.html which is all about using oci_set_client_identifier()
To Top