PHP 8.5.0 Alpha 2 available for testing

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 Oracle, devuelto por la función oci_connect(), oci_pconnect() o la función oci_new_connect().

client_id

Cadena de caracteres elegida por el usuario de hasta 64 bytes de longitud.

Valores devueltos

Esta función retorna true en caso de éxito o false si ocurre un 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

Ida y vuelta

Algunas funciones OCI8 requieren ida y vuelta con la base de datos. Estas ida y vuelta pueden ser evitadas al usar consultas cuyo resultado es almacenado en caché.

Ver también

add a note

User Contributed Notes 1 note

up
2
sixd at php dot net
14 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