(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)
oci_set_client_identifier — Define el identificador del cliente
Define el identificador del cliente, utilizado por numerosos componentes de la base de datos para identificar a los usuarios de la aplicación que se autentican con el mismo nombre de usuario de la base de datos.
El identificador del cliente se registra en la base de datos durante el próximo intercambio 'round-trip' desde PHP hacia la base de datos; típicamente, la ejecución de una consulta SQL.
El identificador puede ser consultado posteriormente, por ejemplo,
con la consulta SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER')
FROM DUAL
. Una vista de administración de la base de datos,
como la vista V$SESSION
también contiene el valor.
Puede ser utilizado con DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE
en el contexto de un trazado. Asimismo, puede ser utilizado en el marco
de un audit.
El valor puede ser conservado a lo largo de las diferentes consultas de las páginas que utilizan la misma conexión persistente.
connection
Un identificador de conexión de Oracle, devuelto por oci_connect(), oci_pconnect(), o oci_new_connect().
client_id
Cadena de caracteres elegida por el usuario de hasta 64 bytes de longitud.
Ejemplo #1 Define el identificador del cliente como el usuario de la aplicación
<?php
// Recupera el nombre utilizado para la identificación del usuario de la aplicación
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');
// Informa a Oracle sobre este usuario
oci_set_client_identifier($c, $un);
// El próximo intercambio (round-trip) hacia la base de datos validará este identificador
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);
// ...
?>
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.