因此,现在移动数据,创建sql服务器用户(仅用于访问该特定数据库),并通过ODBC连接将表链接到Access数据库.但是,应该以某种方式解决一个麻烦:Access在打开Access数据库时会定期询问用户密码.
服务器PC和客户端PC上的用户都登录到本地计算机,即他们的用户未在独立域服务器上进行验证.
> 1)配置集成安全模型,以便用户可以登录,由Windows登录自动授权(即使用“可信连接”).鉴于服务器PC无法从客户端PC识别用户,我不确定如何做到这一点.如果我现在尝试这样做,我会收到用户从不受信任的域连接的错误.
> 2)在客户端存储sql Server用户密码.不过,我不确定这是可能的.我知道在一些配置文件中保留密码,或者在应用程序配置中存储模糊处理应该被视为降低安全性,但这对于给定的设置是可接受的.
> 3)或许还有其他一些方法如何将sql服务器表链接到Access?
解决方法
如果这不合适,这里有一个可能的替代技巧,利用Access在程序关闭之前记住所有打开的连接的事实:
>复制其中一个表的连接字符串
>创建一个passthru查询“ptqConnect”并在其中输入任何快速sql语句,如SELECT 1
>将连接字符串粘贴到PTQ Connect属性中,并确保添加PWD = something;在里面.
>在您的应用程序的启动过程中,请确保您调用该PTQ.像DCount(“*”,“ptqConnect”)这样的东西都可以.
而已.由于Access会关闭打开的连接,直到您关闭它,即使关闭数据库,您的其他表现在也可以毫不费力地打开,即使链接表中没有存储密码连接字符串.
如果您不想公开包含PWD的连接字符串,您也可以从VBA启动连接并通过提供MDE或仅保护代码的密码来隐藏代码.
您可以找到此行为的解释here.