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()
oci_set_client_identifier
(PHP 5.3.2, PECL OCI8 >= 1.4.0)
oci_set_client_identifier — Establece el identificador del cliente
Descripción
$connection
, string $client_identifier
)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 posteriormente desde una vista de administración de la base de datos como V$SESSION. Se puede usar con DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE para rastreos. También se puede usar para auditorías.
El valor podría manterse entre conexiones persistentes.
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
Problema con los viajes de ida y vuelta
Algunas, pero no todas, de 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
- oci_set_module_name() - Establece el nombre de un módulo
- oci_set_action() - Establece el nombre de una acción
- oci_set_client_info() - Establece la información del cliente
