PHP 8.3.4 Released!

oci_set_client_identifier

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

oci_set_client_identifier Задаёт идентификатор клиента

Описание

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

Устанавливает идентификатор клиента, используемый различными компонентами базы данных для идентификации различных пользователей тонких клиентов, которые авторизуются в базе данных как один пользователь.

Идентификатор клиента регистрируется в базе данных во время очередного запроса от PHP, например, когда запускается SQL выражение.

Идентификатор может быть извлечён, например с помощью SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL. Административное представление базы данных, такое как V$SESSION, также содержит это значение. Его можно использовать совместно с DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE для трассировки и аудита.

Значение может сохраняться между запросами страниц, которые используют одно и то же постоянное соединение.

Список параметров

connection

Идентификатор соединения Oracle, который возвращают функции oci_connect(), oci_pconnect() или oci_new_connect().

client_id

Задаваемая пользователем строка до 64 байт.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае ошибки.

Примеры

Пример #1 Установка идентификатора клиента для пользователя

<?php

// Найдём логин пользователя
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');

// Сообщим его базе данных
oci_set_client_identifier($c, $un);

// Следующий запрос к БД заодно установит идентификатор
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);

// ...

?>

Примечания

Предостережение

Совет по полному сканированию таблицы (roundtrip)

Ряд OCI8-функции вызывают полное сканирование таблицы (roundtrip). Функции не сканируют таблицы полностью для тех запросов, в которых включено кеширование результатов в базе данных.

Смотрите также

add a note

User Contributed Notes 1 note

up
1
sixd at php dot net
12 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