每次Access连接到SQL Server而不使用Windows身份验证时,如何避免手动输入登录名和密码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每次Access连接到SQL Server而不使用Windows身份验证时,如何避免手动输入登录名和密码相关的知识,希望对你有一定的参考价值。
我正在连接到Azure服务器以导入由第三方托管的数据。由于公司与我公司之间的安全协议,我无法使用Windows身份验证进行连接。我必须使用用户名和密码进行服务器端身份验证。我使用OBDC通过DSN连接到Azure。问题是每次我打开Access并连接到Azure表时,我都会通过手动取消选中“使用可信连接”然后输入该服务器的用户名和密码来解决连接错误。有没有办法自动化这个过程?
您可以使用两种方法来解决此问题。
一种方法是删除所有表链接,然后重新链接。执行此操作时,请确保选中此框以保存uid /密码。因此,Access将记住有衬里的表的设置。但是,如果您“经常”或“总是”需要提示用户进行uid / logon,那么每次都必须重新链接表。但是,如果您不需要重新链接或更改uid /密码,那么这是一个简单而精细的解决方案。
请记住,您的uid /密码处于链接表的“简单”视图中 - 因此,只有您可以决定这是否是“非问题”,或者您希望阻止用户查看的内容。
另一种方法是按原样“保留”您的内联表,并在您的启动代码中执行登录。执行登录后,现有的链接表(不保存uid /密码)现在可以正常工作。
您可以使用以下代码“登录”到服务器,一旦完成,则不应出现所有这些提示。
Function TestLogin(strCon As String) As Boolean
On Error GoTo TestError
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Set dbs = CurrentDb()
Set qdf = dbs.CreateQueryDef("")
qdf.connect = strCon
qdf.ReturnsRecords = False
'Any VALID SQL statement that runs on server will work below.
' this does assume user has enough rights to query built in
' system tables
qdf.sql = "SELECT 1 "
qdf.Execute
TestLogin = True
Exit Function
TestError:
TestLogin = False
Exit Function
End Function
您必须传递上面正确格式化的连接字符串。
我将尝试“登录”技术,让你知道它是怎么回事。为了给出更多背景知识,我将其链接到几个后端数据库中。使用Windows身份验证在公司服务器上自动登录的那些。由于存在安全问题,第三方开发人员服务器上的表无法与Windos身份验证链接。第三方连接必须使用开发人员的登录名和密码。
以上是关于每次Access连接到SQL Server而不使用Windows身份验证时,如何避免手动输入登录名和密码的主要内容,如果未能解决你的问题,请参考以下文章
使用 MS Access 2003 连接到 SQL Server 2005
Access 2000 连接到 SQL Server 2005
使用 OleDb 从 Access Forms 连接到 SQL Server
MS Access 使用 Windows 用户名连接到 SQL Server