SQL 提示80004005错误分析

微软windows的数据访问组件 (MDAC) 经常会有 0x800040005 错误的提示,本文将向大家介绍0x800040005 错误的常见原因,MDAC 包括 ActiveX 数据对象、OLE DB 和远程数据服务 (RDS)。

错误消息

Microsoft OLE DB提供者为ODBC驱动程序错误80004005(微软)(ODBC驱动程序管理器)没有发现数据源名称,没有指定默认的驱动程序。

原因

。最常见的原因是全球asa和全球asa连接字符串的初始化会话变量没有灵感。您可以使用asp页面中添加以下代码,检查正确的变量初始化:

< % = ” auth_user“&请求。Servervariables(auth_user)% >

< p >

< % = ” auth_type“&请求。Servervariables(auth_type)% >

< p >

< % = “连接字符串是“&会话(your_connectionstring)% >

< p >

另一个常见原因是连接字符串中使用太多的空间。

DSN = MyDSN;数据库=酒吧;

尝试使用以下语法:

DSN = MyDSN;数据库=酒吧;

如果不激发全球asa文件,请检查并确认它是应用程序的根下的IIS 4.0,(如果是运行IIS 3.0应该是虚拟根下,并执行该复选框被选中)。此外,当Windows NT权威限制访问文件夹,一个错误在程序的设计也可能阻碍全球。asa文件被触发。详细信息请参见微软知识库

文章:

错误:限制Web access,全球Q173742”。亚撒没有实现“DSN名称不能被发现。

请检查并确认不使用“用户”类型的DSN。

如果您正在使用文件DSN或system DSN,然后尝试把连接字符串的DSN = MySystemDSN或DBQ = MyFileDSN相应。简化!

检查并确认安装了最新的驱动程序。如果你不确定,请从以下网站下载最新的MDAC(微软数据访问组件):

http://www.microsoft.com/data/

错误消息

Microsoft OLE DB提供者为ODBC驱动程序错误80004005(微软)[ODBC驱动程序Microsoft Access 97]

微软推出的一款数据库引擎总是打开文件(未知)。它已经完全被另一个用户打开或你需要权限来查看数据。

原因

这个错误发生,通常是因为使用的Internet Information Server(IIS)账户(通常IUSR)没有正确的Windows NT权威,因此无法访问基于文件的数据库或包含文件的文件夹。请检查文件和文件夹的权限设置。确认你能够创建和/或删除任何临时文件。临时

文件通常是在同一个文件夹中创建的数据库,但是在其他文件夹,也可以创建/ Winnt等。您可以使用Windows NT文件监控检查失败的原因来访问文件。Windows NT文件监控可以从以下网站:

http://www.sysinternals.com。

如果您使用的是网络的数据库路径(UNC或图像驱动器),请检查共享、文件和文件夹权限。确认文件和数据源名称(DSN)没有被标记为一个独家。使用本地驱动器系统DSN。如果有必要,将数据库移动到本地驱动器,然后测试它。其他用户中的错误消息()其他用户可能视觉InterDev。请关闭任何视觉InterDev项目,包括数据库数据连接。

造成的错误也可以分配问题。检查可能的任何身份验证方法(“基本”而不是NTLM)。如果连接字符串使用统一的命名约定(UNC),请尽量使用基本身份验证或绝对路径,如C:MydataData。MDB。即使UNC,指向资源位于本地IIS电脑,可能发生的错误。

当访问一个链接表的Microsoft Access数据库,如果一个表访问web服务器上的数据库,可能发生这个错误。在这种情况下,请参阅以下Microsoft知识库文章找到可能的解决方案:

Q189408 lm-prb:ASP不能访问网络文件在IIS 4.0

错误消息

Microsoft OLE DB提供者为ODBC驱动程序错误80004005[微软][ODBC

驱动程序管理器)数据源名称不? ?

原因

这个问题似乎相关计算机软件的顺序安装或卸载。如果ODBC内核文件同步(他们必须相同版本),可能会出现这种错误。

从以下网站,请下载最新版本的MDAC)(微软数据访问组件,为了升级核心所有ODBC驱动程序:

http://www.microsoft.com/data/

错误消息

Microsoft OLE DB提供者为ODBC驱动程序错误80004005(微软)[ODBC SQL Server司机][DBNMPNTW]ConnectionOpen(它仅仅())。

原因

一个错误,这有两个原因。他们都是相关权限,或数据库和Web服务器不是在电脑上,或数据库(\ ServerShare)被UNC路径。即使同一台计算机上的数据库和Web服务器,UNC路径使Web服务器,数据库,好像位于网络上另一台计算机。

如果asp页面是由匿名用户访问,以下将会发生:

将使用IIS(默认)Windows NT帐户:

USR_ < machinename >。

因为账户Web服务器的本地账户,不清楚所以网络上的其他计算机帐户。当IIS(运行)IUSR账户安全环境当试图访问任何资源在远程机器上,远程计算机将验证其使用的帐户。IUSR账户是一个本地帐户,所以远程计算机,它是没有办法知道,所以访问被拒绝。

当匿名访问导致这个问题,有两种解决方案:

在“互联网服务管理器”工具,从Web属性下的匿名登录帐户从默认本地帐户基于域的有效帐户。在用户名字段中,输入域账户使用,domainuserid格式。通过这种方式,远程计算机可以使用一个域控制器来验证IIS安全凭据传递给它。

-或-

包括你想要访问资源的副本在远程计算机帐户

IUSR_ < machineaccount >。如果在远程计算机上创建帐户,包含相同的名称和密码,Windows NT

相当于帐户。

-或-

如果asp页面只允许访问身份验证,请参考以下内容:

如果页面不允许匿名访问,IIS将尝试请求用户的身份验证,并使用它的安全凭据来控制它的所有活动,如访问数据库。面对这样的情况下两个失败的主要原因。

默认情况下,IIS配置为一个Windows NT挑战/响应身份验证方法。

因为Windows NT 4.0(和)安全模型的局限性,通过Windows NT的挑战/响应认证用户不能访问远程计算机上的资源。这通常是

称为分配问题。来验证这种情况,是否可以在“互联网服务经理”工具,选择基本的(明确的)从Web属性复选框,然后干净的Windows NT的挑战/响应。如果这个步骤来解决这个问题,这显然是一个分配问题。

-或-

如果问题仍然存在,可以使用SQL Windows NT计算机用户帐户没有正确的权限。尝试使用一个明确的SQL的计算机访问帐户。

有关委派、IIS如何保护网站通过认证,及相关问题的详细信息,请参阅文章“IIS身份验证和

安全对于互联网开发人员”,

它座落在以下网站:

http://www.microsoft.com/workshop/s..。Re /安全。asp

错误消息

Microsoft OLE DB提供者为ODBC驱动程序错误80004005微软](ODBC Microsoft SQL司机)登录失败()

原因

错误是在SQL服务器不接受或不认可提交登录账户和/或密码(当使用标准的安全),或没有任何Windows NT帐户映射到SQL帐户(当使用集成安全性),生成的SQL服务器。

 

错误消息

Microsoft OLE DB提供者为ODBC驱动程序错误80004005(微软)(ODBC Microsoft Access 97司机)不能使用(未知);文件已经在使用。

原因

数据库不能正确锁为多个用户。详细信息,请参阅以下Microsoft知识库文章:

Q174943 lm-prb:80004005“不能使用(未知);该文件已经在使用“

 

错误消息

Microsoft OLE DB提供者为ODBC驱动程序错误80004005(微软)(ODBC访问ODBC驱动程序97驱动程序)

通用错误无法打开注册表键DriverId。

原因

这个错误是由于读取注册表的值。请使用注册表编辑器(Regedt32。Exe)检查权限设置注册表项。您还可以使用Windows NT注册表监控(NTRegMon)来检查注册表读取失败。NTRegMon从

以下网站下载:

http://www.sysinternals.com




顶部