PHP 8.4.6 Released!

oci_set_client_identifier

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

oci_set_client_identifierDefine o identificador do cliente

Descrição

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

Define o identificador de cliente usado por vários componentes de banco de dados para identificar usuários de aplicações leves que se autenticam como o mesmo usuário de banco de dados.

O identificador do cliente é registrado no banco de dados quando ocorre a próxima 'viagem de ida e volta' do PHP para o banco de dados, normalmente quando uma instrução SQL é executada.

O identificador pode ser consultado posteriormente, por exemplo, com SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL. Visualizações de administração de banco de dados, como V$SESSION, também conterão o valor. Ele pode ser usado com DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE para rastreamento e também para auditoria.

O valor pode ser retido em solicitações de página que usam a mesma conexão persistente.

Parâmetros

connection

Um identificador de conexão Oracle, retornado por oci_connect(), oci_pconnect() ou oci_new_connect().

client_id

String escolhida pelo usuário com até 64 bytes de comprimento.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Definindo o identificador do cliente para o usuário da aplicação

<?php

// Encontra o nome de login do usuário do aplicativo
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');

// Informa ao Oracle quem é esse usuário
oci_set_client_identifier($c, $un);

// A próxima viagem de ida e volta ao banco de dados trará o identificador
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);

// ...

?>

Notas

Cuidado

Pegadinha da Viagem de Ida e Volta

Algumas, mas não todas as funções do OCI8, causam viagens de ida e volta. Viagens de ida e volta ao banco de dados podem não ocorrer com consultas quando o cache de resultados estiver habilitado.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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