在结构调整后测试访问文件时,我经常在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数据源配置框中的匹配?
发布于 2014-09-18 21:23:45
UID/密码的保存取决于第一次创建表链接的方式。如果您选中了连接字符串中的“保存密码”,那么任何重新链接和包含uid/密码的内容都将被保存,并在字符串中清晰可见。
如果您没有选中“保存密码”框,则重新链接,即使包含uid/密码,它也不会保存在连接字符串中。因此,如果您没有登录到该服务器,那么打开这样的链接表将导致登录或odbc连接错误。但是,如果您登录到该表,则access将缓存该会话的uid/密码。
因此,“如何”创建链接将决定是否保存了uid/密码。因此,控制此设置的tabledef属性是:
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 (一种使用文件,另一种使用注册表),我还会检查可能的不同行为。
https://stackoverflow.com/questions/25893167
复制相似问题