首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS Access不再在属性表中显示完整ODBC连接字符串。

问MS Access不再在属性表中显示完整ODBC连接字符串。
EN

Stack Overflow用户
提问于 2014-09-17 14:20:38
回答 1查看 1.9K关注 0票数 0

在结构调整后测试访问文件时,我经常在ODBC连接字符串的UID和PWD凭据之间切换,但是最近所做的一些事情已经导致访问不再显示完整的连接字符串。

我有4个生产传递查询和1个测试传递查询.测试传递查询显示完整的ODBC连接字符串,但4个生产传递查询只显示ODBC;DSN=schema_name;。我尝试重述ODBC连接:

a) I click the three dots b) The "Select Data Source" box opens c) I select the data source d) I choose "Yes" to save the password in the connection string.

然而,在此之后,它仍然只显示简短的连接字符串。要让MS Access显示完整的连接字符串,我需要做什么?

连接字符串UID和PWD是否总是与保存在ODBC数据源配置框中的匹配?

  • 使用Access 2010
  • 以.mdb (Access 2000)格式保存
  • 用户DSN: MySQL ODBCD5.3 Unicode驱动程序
  • 系统DSN: MySQL ODBCD5.3 ANSI驱动程序
EN

回答 1

Stack Overflow用户

发布于 2014-09-18 21:23:45

UID/密码的保存取决于第一次创建表链接的方式。如果您选中了连接字符串中的“保存密码”,那么任何重新链接和包含uid/密码的内容都将被保存,并在字符串中清晰可见。

如果您没有选中“保存密码”框,则重新链接,即使包含uid/密码,它也不会保存在连接字符串中。因此,如果您没有登录到该服务器,那么打开这样的链接表将导致登录或odbc连接错误。但是,如果您登录到该表,则access将缓存该会话的uid/密码。

因此,“如何”创建链接将决定是否保存了uid/密码。因此,控制此设置的tabledef属性是:

代码语言:javascript
复制
MyTableDef.Attributes = DB_ATTACHSAVEPWD

作为一般规则,最好不要在这些链接中包含uid/密码。最好在应用程序开始时执行登录。这也意味着您可以使用不同的uid/密码,而不必重新链接表。我不认为querydefs有此设置,但如果用户登录到数据库,它们也将在没有uid/密码的情况下工作。

因此,要回答您的问题:存在一个选项(属性)设置,它将导致保存或不保存uid/密码。当将uid/密码包含在连接字符串中时,此选项将重写原因--如果表def没有允许在连接字符串中保存uid/密码的上述属性设置,则该选项将被删除而不保存。

这里有一篇很棒的文章,它解释了如何让您的所有表连接和工作,而不必在连接中包含uid/密码。“诀窍”包括在应用程序开始时简单地执行登录。

Power提示:提高数据库连接http://blogs.office.com/b/microsoft-access/archive/2011/04/08/power-tip-improve-the-security-of-database-connections.aspx的安全性

后续:在与SQL server一起使用Access时,通常会使用链接表。然后,您可以像往常一样继续使用Access。因此,您可以简单地将表单绑定到该链接表到SQL服务器,这样您就有了可以工作的表单和报表,而无需编写任何代码。因此,tableDefs (链接的)和querydefs都有一个连接属性。

看起来querydefs没有上面我描述的“保存密码”属性。这可能意味着,如果指定DSN,则不会保存密码等,因为它是DSN中所期望的。因此,尝试删除DSN部分-通过这样做,您正在创建一个DSN少连接。省略DSN部分将允许您在字符串中保存/指定uid/密码。如果使用文件或机器DSN (一种使用文件,另一种使用注册表),我还会检查可能的不同行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25893167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档