日期:2014-05-16  浏览次数:21339 次

头疼:IIS下配PHP中的一个权限问题
操作系统是windows2003 IIS是6.0 
C:\WINDOWS\Temp 权限已经设置为Everyone完全控制
新建用户IUser_lihua隶属于Guest 并开通了E盘磁盘配额为100M
IIS的运行帐号为用户IUser_lihua .php映射正确,可以执行
我的PHP安装在: C:\php5 权限为:Administrator完全控制 SYSTEM完全控制 Users读取和运行\列出文件夹目录\读取
网站路径: E:\iisweb\HomePage\lihua\wwwroot权限为:Administrator完全控制 SYSTEM完全控制IUser_lihua完全控制
我在E:\iisweb\HomePage\lihua\wwwroot下有以下文件:
TestPhpAccess.php 和 TestStudent.mdb(里面有student数据表<id和stuName两个字段>)
TestPhpAccess.php 代码为:
<?php 
$connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("TestStudent.mdb"); 
$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ); 
$query=odbc_do($connid,"select * from student"); 
while(odbc_fetch_row($query))
 { 
for($i=0;$i<2;$i++)

echo $record1[$i] = odbc_result($query,$i+1); echo " "; 
}
echo "<br>"; 
 } 
?>
http://127.0.0.1/TestPhpAccess.php出现以下错误
Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x7b4 Thread 0x424 DBC 0x43ee9ac Jet'。, SQL state S1000 in SQLConnect in E:\iisweb\HomePage\libin\wwwroot\TestPhpAcc.php on line 3

Warning: odbc_do(): supplied argument is not a valid ODBC-Link resource in E:\iisweb\HomePage\libin\wwwroot\TestPhpAcc.php on line 4

Warning: odbc_fetch_row(): supplied argument is not a valid ODBC result resource in E:\iisweb\HomePage\libin\wwwroot\TestPhpAcc.php on line 5
(备注:如果我把IIS运行帐号改为超级用户Administrator那么就不会发生任何错误,
  或者在操作系统里设置系统ODBC那么执行也不会发生任何错误)
我知道可能是权限配置问题,但我不知道该如何修改,恳请各位帮忙!

------解决方案--------------------
那么为什么不用系统ODBC呢?

用户DSN的话,IIS如何访问到它呢?因为你的站点是运行在IUSR上面。