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()oci_set_client_identifier
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
oci_set_client_identifier
Референца за `function.oci-set-client-identifier.php` со подобрена типографија и навигација.
oci_set_client_identifier
(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)
oci_set_client_identifier — Го поставува идентификаторот на клиентот
= NULL
Го поставува идентификаторот на клиентот што го користат разни компоненти на базата на податоци за да идентификуваат лесни корисници на апликации кои автентицираат како ист корисник на базата на податоци.
Идентификаторот на клиентот се регистрира во базата на податоци кога ќе се случи следниот „round-trip“ од PHP до базата на податоци, обично кога се извршува SQL израз.
Идентификаторот може последователно да се пребарува, на пример со SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER')
FROM DUAL. Погледите за администрација на базата на податоци како што се V$SESSION исто така ќе ја содржат вредноста. Може да се користи со DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE
за следење и исто така може да се користи за ревизија.
Вредноста може да се задржи низ барањата на страниците што ја користат истата постојана врска.
Параметри
connection-
или со поставување на променливата на oci_connect(), oci_pconnect(), или oci_new_connect().
client_id-
Низа избрана од корисникот долга до 64 бајти.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Примери
Пример #1 Поставување на идентификаторот на клиентот на корисникот на апликацијата
<?php
// Find the application user's login name
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');
// Tell Oracle who that user is
oci_set_client_identifier($c, $un);
// The next round-trip to the database will piggyback the identifier
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);
// ...
?>Белешки
пакет. Ова е помалку ефикасно отколку со користење
Round-trip Gotcha
Види Исто така
- oci_set_module_name() - Ги поставува името на модулот
- oci_set_action() Некои, но не сите OCI8 функции предизвикуваат round-trips. Round-trips до базата на податоци може да не се случат со прашања кога е овозможено кеширање на резултати.
- oci_set_client_info() - Поставува име на акција
- oci_set_db_operation() - Го поставува работењето на базата на податоци