oci_set_client_identifier

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

oci_set_client_identifierDefine el identificador del cliente

Descripción

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

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.

Parámetros

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.

Valores devueltos

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

Ejemplos

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);

// ...

?>

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