通过网络共享的MS Access数据库

Asked
Viewd2192

2

我有一个简单的网站,需要通过unc共享连接到Access数据库。

该服务器是运行IIS 6的Windows 2003盒。通过ODBC进行连接。

我们收到一条错误消息,内容为“
错误[42000] [Microsoft] [ODBC Microsoft Access驱动程序]不是有效的密码。
错误[IM006] [Microsoft] [ODBC驱动程序管理器]驱动程序的SQLSetConnectAttr失败

我猜想IIS服务器无权访问共享。该应用程序池正在网络服务下运行。

我该如何解决?

更新
这太奇怪了。如果我已经在ODBC配置中检查了ReadOnly,并且没有其他人连接到该数据库,则它可以工作。

如果其他人附加到它,则它给我一个错误“ HY000] [Microsoft] [ODBC Microsoft Access驱动程序]无法使用“(未知)”;该文件已在使用中。”

如果我取消选中只读配置(没有其他更改),那么它会显示“无效密码”。

  • @Remou:不确定。现在调查一下。

    NotMeNovember 16, 2009 15:53
  • 在这种情况下只是猜测,但是用户对存储访问数据库的目录具有完全权限吗?如果没有,则第一个打开数据库的用户将锁定.ldb(锁定)文件。

    FionnualaNovember 14, 2009 00:46

3 个答案

2

如果我已经在ODBC配置中检查了ReadOnly并且没有其他人附加到该数据库,那么它可以工作

这表明您具有对该共享的读取权限,但没有该写入权限。

  • 文件夹权限是问题所在。应该在一个月前选择答案的……

    NotMeJanuary 14, 2010 03:01
1

这是一个非常普遍的问题。解决此问题的一种方法是在可以访问该共享的域用户下运行您的应用程序池,或者让您的Web应用程序模拟可以访问该共享的域用户:

如何从IIS应用程序访问网络文件

1

这不是我的经验(我不认为Jet / ACE是网站的合适数据存储),但是我对Jet / ACE知道很多。

当您将其设置为“只读”时,您会获得连接,这一事实表明,正在运行的Web服务器用户对正在打开的文件(或更可能是在其所在文件夹中和/或使其通过网络可用的共享)。单个用户的只读连接无需创建LDB文件(记录锁定文件)。如果Web服务器用户对存储MDB / ACCDB的文件夹没有CHANGE权限,则它将无法创建LDB文件,因此将无法编辑该文件。

此外,请记住,使用Jet / ACE进行的所有操作均使用用户名。透明地,它将使用没有密码的默认管理员帐户,但是也许您试图提供其他一些用户名/密码对。在这种情况下,可能是您使用了错误的工作组文件,或者使用了您认为合适的文件。

  • 请记住,XP工作站最多只能有10种网络连接。

    David-W-FentonNovember 17, 2009 03:11
  • 我完全同意喷气式飞机是网站的完全不合适的数据存储。客户知道这一点并正在尝试纠正,但我没有屏息。我将让他们检查文件夹权限。作为附带说明,我确实发现Access数据库位于Windows XP计算机上。只是越来越好…;)

    NotMeNovember 16, 2009 15:55