首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP5.6Oracle外部身份验证和带有PDO问题的OCI_CRED_EXT

PHP5.6Oracle外部身份验证和带有PDO问题的OCI_CRED_EXT
EN

Stack Overflow用户
提问于 2022-02-04 09:14:30
回答 1查看 90关注 0票数 0

我想知道如何使用一个安全的外部密码存储,也就是带有PDO的钱包来使用身份验证。

请参阅地下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 (跳转至第3.2.9章)

以下是oci8很好的工作方式:

代码语言:javascript
运行
复制
$conn = oci_connect('/', '', $db, 'UTF8',OCI_CRED_EXT);

注意OCI_CRED_EXT属性!

但是,如何将该选项传递给PDO连接?以下内容可能很接近,但不起作用:

代码语言:javascript
运行
复制
$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());
  }

有可能吗?非常感谢!

EN

Stack Overflow用户

发布于 2022-02-04 22:39:35

用PDO_OCI是不可能的。与OCI_CRED_EXT不同的是,该实现不会在任何地方设置OCI8。如果您正在使用Oracle Cloud,请注意钱包现在是可选的。如果您使用即时客户端19.14或21.5,您可以使用单向(“无钱包”) TLS,类似于https://towardsdev.com/connect-to-oracle-autonomous-database-from-python-without-using-the-instance-wallet-64bd16e4f31c中所示

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70983905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档