PHP Conference Japan 2024

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(資源 $connection, 字串 $client_id): 布林值

設定各種資料庫元件使用的用戶端識別碼,用於識別以相同資料庫使用者身分驗證的輕量應用程式使用者。

用戶端識別碼會在下次從 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 個位元組。

傳回值

成功時傳回 true,失敗時傳回 false

範例

範例 #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 函式會造成往返行程。啟用結果快取時,查詢可能不會發生與資料庫的往返行程。

參見

新增註釋

使用者貢獻的註釋 1 則註釋

sixd at php dot net
13 年前
www.oracle.com/technetwork/articles/dsl/php-web-auditing-171451.html 上有一篇名為「使用 Oracle 資料庫進行 PHP 網頁稽核、授權和監控」的文章,其中詳細介紹了 oci_set_client_identifier() 的使用方法。
To Top