使用 oracle sys.user$ for PHP 的登录页面

Login page using oracle sys.user$ for PHP

我需要创建将使用来自 sys.user$ 的用户名和密码的登录页面,但是当想要登录时登录失败。

但是如果我使用我创建的 table 就可以。

$name=$_REQUEST['name'];
$password=$_REQUEST['password'];

if(!empty($name) && !empty($password)){

   $sqlCheck=OCIParse($c,"SELECT NAME, PASSWORD FROM sys.user$ 
                           WHERE NAME='$name'
                             AND PASSWORD='$password'");

   OCIExecute($sqlCheck,OCI_DEFAULT);

   while(OCIFetch($sqlCheck)){
     $db_name = OCIResult($sqlCheck, "NAME");
     $db_password = OCIResult($sqlCheck, "PASSWORD");
   }

   if($db_name != $name && $db_password != $password){
     echo "<script>window.location.href='../index.php?page=login&error=1';</script>";
     exit();
   } else {
     $_SESSION['verify_name'] = $name;
     echo "<script>window.location.href='../index.php?page=please_verify';</script>";
     exit();
   }
}

假设您没有为您的应用程序使用 SYS 用户,

您需要权限才能从 SYS 用户访问 SYS.USER$。检查您是否有权访问 table。

解决方案是,grant select privilegeSYS 用户到您在应用程序中用来连接数据库的任何用户。