www.oracle.com/technetwork/articles/dsl/php-web-auditing-171451.html 上有一篇名為「使用 Oracle 資料庫進行 PHP 網頁稽核、授權和監控」的文章,其中詳細介紹了 oci_set_client_identifier() 的使用方法。
(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)
oci_set_client_identifier — 設定用戶端識別碼
設定各種資料庫元件使用的用戶端識別碼,用於識別以相同資料庫使用者身分驗證的輕量應用程式使用者。
用戶端識別碼會在下次從 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() 傳回的 Oracle 連線識別碼。
client_id
使用者選擇的字串,最多 64 個位元組。
範例 #1 將用戶端識別碼設定為應用程式使用者
<?php
// 尋找應用程式使用者的登入名稱
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');
// 告知 Oracle 該使用者的身分
oci_set_client_identifier($c, $un);
// 下一次到資料庫的往返行程將會捎帶識別碼
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);
// ...
?>
某些(但並非所有)OCI8 函式會造成往返行程。啟用結果快取時,查詢可能不會發生與資料庫的往返行程。
www.oracle.com/technetwork/articles/dsl/php-web-auditing-171451.html 上有一篇名為「使用 Oracle 資料庫進行 PHP 網頁稽核、授權和監控」的文章,其中詳細介紹了 oci_set_client_identifier() 的使用方法。