通过Php脚本查询Oracle数据库:权限不足

时间:2014-05-07 18:56:34

标签: php oracle

我试图通过PHP脚本查询远程Oracle数据库。我正在运行WAMP服务器。 Oracle数据库是只读的。我使用PHP脚本连接没有问题,但我在oci_execute命令上遇到错误。

这是我使用的脚本:

<?php

$c = oci_connect("username", "password", "oracle_SID");

if (!$c) {
$e = oci_error();
trigger_error('Could not connect to database: '. $e['message'],E_USER_ERROR);
}

$s = oci_parse($c, 'Select * from fdma.t_title_stage');
if (!$s) {
    $e = oci_error($c);
    trigger_error('Could not parse statement: '. $e['message'], E_USER_ERROR);
}

$r = oci_execute($s);
if (!$r) {
$e = oci_error($s);
trigger_error('Could not execute statement: '. $e['message'], E_USER_ERROR);
}

oci_free_statement($stid);
oci_close($conn);

?>

这些是我在运行脚本时遇到的错误: enter image description here

如果数据库是只读的,我应该可以针对它运行select *查询,对吗?

1 个答案:

答案 0 :(得分:0)

Oracle没有将数据库视为“只读”的概念。您正在连接的用户可能没有任何创建/插入/更新/删除权限,这将使数据库对该用户只读,但它是用户的属性,而不是数据库。

您收到的错误与sql语句(... from fdma.t_title_stage)一起似乎与您在fdma的t_title_stage表上没有选择权限的用户建立联系。尝试登录fdmagrant select on t_title_stage to xxx xxx是您在oci_connect语句中使用的username