gpt4 book ai didi

azure - Access 链接表 - 无需保存密码即可登录

转载 作者:行者123 更新时间:2023-12-02 03:31:17 25 4
gpt4 key购买 nike

我有一个 Access 数据库,我正在将其迁移到 Azure SQL 服务器后端。

我希望用户能够使用自定义表单来设置用于链接表的详细信息。

目前,我正在使用 AttachDSNLessTable 重新创建具有用户凭据的链接表,但这会将详细信息保存到不太安全的 Access 文件中。我考虑过在数据库关闭期间删除链接表,但如果任务被终止,连接详细信息将保留。

有没有办法可以为当前 session 的链接表指定用户名和密码?

最佳答案

如果您要从代码执行重新链接,那么您应该能够通过不指定 TableDef 对象的 dbAttachSavePWD 属性来防止保存密码当您创建链接表时。为了实现这一点,您还应该在每次重新链接之前删除 SQL 链接表,以确保您的选项得到尊重,并且 Microsoft Access 更新链接表的架构。

以下是一些示例代码,它将删除链接表并重新链接它,显示 dbAttachSavePWD 属性用法:

Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim strConn As String
Dim AzureTableName as String
Dim AccessTableName as String

Set db = CurrentDb()
AzureTableName = "dbo.YourTable"
AccessTableName = "YourTable"
strConn = "ODBC;Driver={SQL Server};Server=YOURSERVER\SQLINSTANCE;Database=MYDATABASE;Trusted_Connection=No;UID=MyUserName;PWD=MyPassword"
db.TableDefs.Refresh
For Each tdf In db.TableDefs
If tdf.Name = AccessTableName Then
db.TableDefs.Delete tdf.Name
Exit For
End If
Next tdf
Set tdf = db.CreateTableDef(AccessTableName)

'===============================
'If you want the password to be saved, include the following 3 lines of code
'to specify the dbAttachSavePWD attribute of the TableDef being created
'If you don't want to save the password, you would omit these 3 lines of code
'===============================
If InStr(strConn, "PWD=") Then
tdf.Attributes = dbAttachSavePWD
End If

tdf.SourceTableName = AzureTableName
tdf.Connect = strConn
db.TableDefs.Append tdf

当您省略 dbAttachSavePWD 属性时,该表将在此 session 期间链接并可用。当您关闭 Microsoft Access 数据库并重新打开它(在运行任何重新链接代码之前)时,该表似乎仍然被链接(显示在数据库窗口中),但如果您尝试 Access 它,您将收到错误,阻止在没有正确重新链接的情况下 Access 数据。

关于azure - Access 链接表 - 无需保存密码即可登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51790375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com