如何获取ms-access作为其他用户连接到ms-sql?

BIB*_*IBD 3 sql-server ms-access odbc

我如何获得ms-access连接(通过ODBC)作为与其Active Directory ID不同的用户连接到ms-sql数据库?

我不想在ODBC连接中指定一个帐户,我想在ms-access端进行该操作以将其隐藏在我的用户之外.在ODBC连接中执行此操作会让我重新回到我想要避免的原始状态.

是的,这与先前的问题有关:http://www.stackoverflow.com/questions/50164/

Tim*_*ine 5

如果你使用"ODBC DSN-LESS连接",我想你可以按照你想要的方式工作

如果需要,请使用Windows身份验证将ODBC DSN保留在用户的计算机上.为您的用户提供对数据库的只读访问权限.(如果他们创建一个新的mdb文件并链接表,他们将只能读取数据.)

创建一个对数据库具有读/写权限的SQL登录.

编写一个VBA例程,它循环遍历链接表并重置连接以使用SQL登录,但一定要使用"DSN-Less"语法.

"ODBC;Driver={SQL Native Client};" &
       "Server=MyServerName;" & _
       "Database=myDatabaseName;" & _
       "Uid=myUsername;" & _
       "Pwd=myPassword"
Run Code Online (Sandbox Code Playgroud)

将此例程称为启动代码的一部分.

关于这种方法的几点注意事项:

  • 一旦从"读/写"更改为"只读"并尝试返回"读/写"而不关闭并重新打开数据库(mde/mdb)文件,Access似乎就会出现连接信息问题.如果您可以在启动时将其更改为读/写,并且在会话期间不更改此解决方案应该可以正常工作.

  • 通过使用DSN - Less连接,您可以在代码中隐藏用户的凭据(假设您给他们一个mde文件,您应该没问题).通常硬编码连接字符串不是一个好主意,但由于你正在处理一个内部应用程序,你应该可以使用这种方法.