一个奇怪现象 Microsoft OLE DB Provider for sql server 错误 '80004005'

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:55:10
数据库出现问题,需要恢复,之前没有备策略份,只有一个七月份的冷备,和9月出问题时候的数据库文件,重装sqlserver后附加9月的数据库,提示3456错误,这个很好解决,恢复后,数据库恢复正常,数据都好,用管理员用户登录可以,但是查询的时候报Microsoft OLE DB Provider for sql server 错误 '80004005' 无法连接,
然后***.asp line 多少多少

管理员用户名和密码也是在数据库中存储的.
然后按网上的说法,给TEMP加了个everyone的读写权限,还是不行,但是有的网页一会可以显示,一会又报这个错误,但是有的查询一直不行.

重新附加7月数据库,也不行,还是同样的问题.

但是奇迹突然出现了,突然就可以了.....

谁能告诉我这是为什么,我现在又附加9月的数据文件了,还是报错,期待奇迹再次发生...

原因:

这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录没有正确的 权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说)检查文件和目录的权限. 确定你能够在该目录中有能够新建和删除临时文件的权限。

这些临时文件其实是数据库建立在同一个目录下的文件, 但是要注意的是,有可能这些文件
也可能建立在别的目录,例如 /Winnt.

使用NT的文件监视程序监视文件失败时到底是访问了什么目录。
这个NT的文件监视程序可以在这个地方下载http://www.sysinternals.com.

如果你对数据库使用了一个网络地址,例如映射地址,就要检查一下共享文件和目录的权限,

还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,
这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。

这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。

还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。

2.错误信息:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file
already in use.

原因:

多人使用时数据库被锁定。<