最近重装下系统,发现以前用asp写的凡是调用access数据库的小程序都不能用了,出现以下错误:
Microsoft JET Database Engine (0x80004005) 未指定的错误
出现0x80004005错误(这个错误代码指的是数据库为只读、无法更新或者是没有权限。)问题出现在权限上。原来我以前调试程序的分区是fat32格式,重装系统后换成了NTFS,就出现了权限的问题,问题是我用超级管理员权限已经对程序目录及数据库目录给了Everyone及IUSR_权限,还是出现0x80004005错误。
网上查询下资料,竟然是c:\windows\temp这个目录权限的问题,给temp目录EVERYONE权限问题解决了。
另外有时出现数据库无法连接的时候,还要注意以下两个方面的问题:
(1)、NTFS权限造成对数据库没有写权限时,需要把IUSR_机器名(匿名访问 Internet 信息服务的内置帐号)用户添加进去,权限设低些,但要写的权限,因为要把信息写入数据库。
(2)、使用一些清除系统垃圾的批处理时,rd /s /q %windir%\temp & md %windir%\temp (此命令新建了一个新Temp文件),会将临时文件%windir%\Temp的属性改变,因此在Temp文件夹的安全选项中需重新添加Everyone用户,并赋于写权限。