Microsoft JET Database Engine 错误80004005 未指定的错误
Posted on 2009-04-07 11:37 sl2008 阅读(7138) 评论(0) 编辑 收藏 举报Microsoft JET Database Engine 错误 '80004005' 未指定的错误 (Provider 错误)
原因:
权限问题,系统缓存目录权限不足
解决方法:
把系统盘如 C:\WINNT\Temp 目录权限加上 Everyone 可读取权限
错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database
engine cannot open the file '(unknown)'. It is already opened exclusively
by another user, or you need permission to view its data.
原因:
这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录
没有正确的权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说)
检查文件和目录的权限. 确定你能够在该目录中有能够新建和删除临时文件的权限。
这些临时文件其实是数据库建立在同一个目录下的文件, 但是要注意的是,有可能这些文件
也可能建立在别的目录,例如 /Winnt.
Microsoft JET Database Engine 错误 '80004005' 未指定的错误
一是要把网页文件目录设置为Internet用户可修改可读。
在“安全”选项卡下,点击“添加……”,跳出“选择用户和组”对话框
然后点击“立即查找”,在下图所示的列表中选择“IUSR_”(下划线之后是你的计算机名 IUSER_您的机器名)
之后在“安全”选项卡中就会出现“Internet来宾帐户”,将这个帐户的权限设置为“可修改”和“可写入”
最后按确定,问题得到解决,不会再出现“Microsoft OLE DB Provider for ODBC Drivers (0x80004005)”错误 !
二是要把C:\Windows\temp文件夹设置为Internet用户可修改可读。
系统的临时目录下(%windir%/temp/ )创建一个临时文件,而这个目录的权限不够。把这个目录加上IUSER_电脑名的读写权限即可
打开C:\Windows\Temp目录,并加入用户IUSR_xxx((打开IIS,右击属性,查看安全目录里的用户是否为IUSR_xxx,如果是就加此用户,如果为其他用户名即在Temp目 录加同样的用户即可!)有写的权限的,就是%SystemRoot%\Temp(即默认安装系统情况下的C:\Windows\Temp)目录
故障原因 此类错误一般出现于文件系统为NTFS格式中,是IIS匿名帐号(IUSR_计算机名)对相关文件、文件夹操作权限不足引起的。 一、存放数据库文件夹对IIS匿名帐号没有写入、修改权限,错误表现为无法对数据库进行更新、写入 二、系统临时文件夹目录对IIS匿名帐号没有写入、修改权限,错误表现为访问服务器上任何采用Microsoft JET Database Engine 链接Access类数据库的文件都是出错。正常情况下是不会出现这个错误的,当使用某些系统垃圾清理优化工具、或其它一些因素可能会导致这个目录权限发生改变。所以请慎重使用此类工具。 解决办法 一、检查存放Microsoft Access数据库文件的文件夹是否有对IIS匿名帐号有写入权限,如果没有,请赋于写入权限,特别是当错误信息为(Microsoft JET Database Engine 错误 '80004005' 操作必须使用一个可更新的查询。)时。 二、JET引擎在链接数据库的时候会在%windir%/temp/目录下创建临时文件,而IIS匿名帐号对%windir%/temp/目录操作权限不够,添加IIS匿名帐号(IUSR_计算机名)对%windir%/temp/的读写权限即可。 其它一些未指定的错误,可以尝试重新注册ASP脚本解释链接库文件。 依顺序运行以下命令: 1.regsvr32 jscript.dll 2.regsvr32 vbscript.dll 3.iisreset |