[英]PHP OCI8 for Oracle DB does not work with IIS (OCI_CRED_EXT) on Windows
[英]PHP 5.6 Oracle external authentication and OCI_CRED_EXT with PDO problem
我想知道如何使用帶有 PDO OCI 的安全外部密碼存儲(又名錢包)進行身份驗證。
請參閱地下 php oracle 手冊中的 Oracle 外部認證和 OCI_CRED_EXT。 和
https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-authentication.html#GUID-803496D2-19C7-4F02-94EC-C13EDD8FB17B (jump to chapter 3.2.9)
以下適用於 oci8:
$conn = oci_connect('/', '', $db, 'UTF8',OCI_CRED_EXT);
注意 OCI_CRED_EXT 屬性!
但是如何將該選項傳遞給 PDO OCI 連接? 以下可能很接近,但不起作用:
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_NUM,
'session_mode' => OCI_CRED_EXT,
];
try{
$conn = new PDO("oci:dbname=".$db.';charset=UTF8', "/","", $opt);
}
catch(PDOException $e){
echo ($e->getMessage());
}
有可能嗎? 非常感謝!
PDO_OCI 是不可能的。 與 OCI8 不同,該實現不會在任何地方設置 OCI_CRED_EXT。 如果您使用的是 Oracle 雲 ADB,請注意錢包現在是可選的。 如果您使用 Instant Client 19.14 或 21.5,您可以使用單向(“無錢包”)TLS,類似於https://towardsdev.com/connect-to-oracle-autonomous-database-from-python-without-using中所示-the-instance-wallet-64bd16e4f31c
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.