我正在尝试使用以下代码使用PHP连接到Oracle数据库:
$username = 'my_username';
$password = 'my_password';
$environment = 'my_environment';
// CHANGE HOST, PORT, SID
$tns = "
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = my_host)(PORT = my_port))
)
(CONNECT_DATA =
(SID = my_sid)
)
)
";
$conn = oci_connect($username, $password, $tns);
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
工作正常。但是我想做的是连接而不用纯文本显示用户名和密码。就像在Postman中一样,您可以使用基本身份验证标头代替纯文本。有办法吗?
答案 0 :(得分:1)
首选解决方案是使用Oracle钱包,并执行“外部身份验证”。请参见Oracle免费The Underground PHP and Oracle Manual的p116。
设置好钱包后,您的代码将如下所示:
$c = oci_connect("/", "", $tns, null, OCI_CRED_EXT);
另一种替代方法是从环境变量中传递密码。