【问题标题】:Connecting to a access database via a Account Name and password通过帐户名和密码连接到访问数据库
【发布时间】:2009-05-09 11:01:18
【问题描述】:

我正在尝试使用两种不同的方法连接到数据库来编辑数据,下面的声明是有效的:

Dim rsConn As ADODB.Connection

rsConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& Application.StartupPath & "\VFMS_DB.mdb;" _
& "Jet OLEDB:System Database=Security.mdw", "Ads", "1234")

但现在我想对下面的声明做同样的事情,但我不断收到消息“不是有效的帐户名或密码。

Dim conn As OleDbConnection

conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& Application.StartupPath & "\VFMS_DB.mdb;" _
& "Jet OLEDB:System Database=Security.mdw;Database Account=Ads;Database Password=1234;")

我很确定这是因为;Database Account=Ads;Database Password=1234; 不正确。我尝试了;User ID=Ads;Database Password=1234;,也让它看起来像第一个语句,但都没有奏效。

如果有人可以请提供帮助。 谢谢你

【问题讨论】:

    标签: vb.net ms-access connection-string database-connection


    【解决方案1】:

    根据connectionstrings.com,这是带有用户名和密码的 Jet OLE DB 4.0 连接的正确连接字符串:

    Provider=Microsoft.Jet.OLEDB.4.0;数据 源=C:\mydatabase.mdb;Jet OLEDB:系统数据库=system.mdw;用户 ID=我的用户名;密码=我的密码;

    【讨论】:

    • 是的,如果数据库本身有密码,指定它添加;Jet OLEDB:Database Password=mypwd
    【解决方案2】:

    我不知道您的问题的实际答案,但会指出这里可能会造成混淆。 Jet 有两种不同类型的“密码”,即数据库密码和 Jet 用户级安全密码。前者不涉及用户名(数据库对每个人都有一个密码),而后者有用户名/密码配对。

    Jet ULS 始终有效。 Jet 的默认设置是用户名“admin”,没有定义密码。如果有人为管理员帐户定义了密码,您需要提供该密码,或使用您知道密码的帐户。

    最后,Jet ULS 信息保存在一个工作组文件中,通常命名为 system.mdw,如果存储了您尝试访问的 MDB 的安全设置,您可能需要在连接字符串中指定它在定义为系统默认工作组文件的工作组文件以外的工作组文件中。我不确定 ADO/OLEDB 如何与注册表中的默认工作组位置设置进行交互,因此我建议找出它的参数名称并在所有情况下明确指定它。

    【讨论】:

      【解决方案3】:

      尝试使用User IDPassword 关键字代替Database AccountDatabase Password

      conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
               & Application.StartupPath & "\VFMS_DB.mdb;" & _
               "Jet OLEDB:System Database=Security.mdw;User ID=Ads;Password=1234;")
      

      这是根据我在connectionstrings.com 上找到的示例。

      【讨论】:

        【解决方案4】:

        你试过user idpassword 吗?

        【讨论】:

          【解决方案5】:

          简单的方法:

           Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=myPassword
          

          【讨论】:

          • 问题是关于用户级别的安全性,但您的答案是关于数据库密码。它们不一样。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-24
          • 1970-01-01
          • 2023-01-11
          • 2016-12-19
          • 2013-09-27
          相关资源
          最近更新 更多