使用Windows身份验证将MS Access链接到SQL Server

时间:2014-08-13 23:31:07

标签: sql-server ms-access authentication

我有一个Microsoft Access数据库,其中包含指向MS SQL Server上表的链接。使用我的Windows身份验证,这些链接对我来说很好,因为我已获得完全访问权限。我已经请求我们的IT部门访问其他用户。他们不会这样做。相反,他们提供了一个新的Windows用户ID和密码,可以访问我们需要的SQL Server。

我在创建链接时尝试使用SQL Server身份验证,但它不起作用。有没有办法使用Windows身份验证,但提供此用户名和密码到数据库?这样我就可以向所有用户发送一份副本,让他们可以访问。

我无法让所有用户使用同一帐户登录Windows,因此我需要一种方法来指定MS Access使用提供的用户名和密码。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

链接到SQL Server时无法指定经过身份验证的用户(不可能)。 您现在继续这样做,只需链接您的登录。因为您使用Windows身份验证,所以USER和PASSWORD不会保存在链接过程中。用于登录Windows的用户ID和密码将自动使用。如果您可以指定其他用户,那么这将默认使用Windows登录的全部要点和目的。使用Windows登录(Windows身份验证)时,则不需要用户名或密码 - 系统自动使用您当前的登录。

因此,IT部门无法发布一些Windows ID供您使用,因为这不是用户登录的Windows ID(您指出了这一点)。

换句话说,Windows身份验证=“请使用”登录到Windows时使用的当前用户ID和登录。事实上,他使用Windows Authenticate代替SQL服务器登录的重点。使用Windows身份验证时,您无法控制链接表时使用的用户名和密码。

只要您在使用Windows身份验证时只是链接到SQL服务器,那么将Access应用程序分发给所有用户就会强制AUTOMATIC使用Windows登录,并且无需您干预即可。

此设置强制SQL Server使用CURRENT Windows用户+密码。

因此,IT部门需要确保经过身份验证的用户使用SQL Server。我不确定为什么他们没有意识到这一点。

如果只允许特定用户,那么他们需要为这些用户授予权限。更好的方法是创建一个具有权限的安全组,然后将所有用户添加到该安全组。一旦他们这样做,那么再次使用SQL服务器将不需要密码或登录 - 它对MS Access是自动且透明的。如上所述,这也意味着用户名和密码不会保存在Access表链接中。

IT部门为SQL Server发出Windows登录没有任何意义。我相信这会让您的IT部门感到非常困惑。

您需要清除他们给您的登录是Windows登录还是SQL服务器登录。使用Windows身份验证时,根本无法欺骗或使用其他人的登录名+密码。

编辑: 如果您要使用SQL登录,那么您肯定可以将表与保存的SQL用户+密码链接起来,这将消除登录的需要。您也可以在没有SQL用户+密码的情况下链接表。然后在Access启动时,您可以执行一个select查询,其中将缓存并用于所有链接表。如何做到这一点概述如下:

电源提示:提高数据库连接的安全性

http://blogs.office.com/b/microsoft-access/archive/2011/04/08/power-tip-improve-the-security-of-database-connections.aspx

答案 1 :(得分:1)

与Windows身份验证相比,这是使用SQL Server身份验证的理想之地。请您的IT人员创建新的SQL Server登录,并在该应用程序的数据库中为该登录提供必要的权限。然后在Access中链接表时使用该凭据。我工作的团队以这种方式做事,而且效果很好。

除了简化一般事项之外,您获得的另一个好处是您的应用程序将在不存在Windows域凭据的环境中工作。

一篇描述SQL Server身份验证和Windows身份验证之间权衡的有趣文章是here

希望它有所帮助。祝你的项目好运。