【问题标题】:Microsoft Access: connecting to SQL Server via Active Directory username and password Trusted_Connection=noMicrosoft Access:通过 Active Directory 用户名和密码连接到 SQL Server Trusted_Connection=no
【发布时间】:2018-12-10 19:28:00
【问题描述】:

我有一个 Microsoft Access 应用程序,它生成如下连接字符串:

Provider=SQLNCLI11;Server=servername;Database=db_name;Trusted_Connection=yes;

这没有任何问题。

我要做的是连接到用户必须插入其 Active Directory 名称和密码的 SQL Server 实例。

像这样:

Provider=SQLNCLI11;Server=servername;Database=db_name;Uid=username;Pwd=password;

这仅适用于直接在 SQL Server 上创建的用户。

我尝试了Uid=DOMAIN\username,但它不起作用。

这可能吗?还是有其他方法可以解决这个问题?

环境: 用户正在使用具有本地帐户的本地 PC,然后他正在使用他的 AD 用户和密码进行“NetworkConnect”。

之后,“RunAs”作为他的 AD 用户正在工作,但还有另一个应用程序从 Access 应用程序启动,并且该应用程序必须使用本地用户帐户启动。

SQL-Server 和 AD-User 是同一个域的成员。

【问题讨论】:

  • 当他/她需要使用域凭据登录时,为什么用户是本地用户?为什么不从一开始就使用域凭据登录?您确定要保护身份验证和密码安全,并在密码泄露时遇到麻烦吗?
  • 因为计算机没有通过 VPN 隧道永久连接到公司。如果您有一个新用户,他将无法使用他的 AD 用户登录计算机,因为这台计算机上没有配置文件。因此,您需要在本地登录,然后使用您的 AD 用户和密码通过 NetworkConnect 登录到域。

标签: sql-server vba connection-string


【解决方案1】:

你的选择是

  1. 使用您当前登录的 Windows 域帐户登录 SQL Server。您可以通过指定 Trusted_Connection=yes; 自动执行此操作,或者

  2. 使用 SQL 登录名登录到 SQL Server。

这是使用 SQL 提供程序连接字符串唯一可能的两种选择。具体来说,您不能使用 SQL 访问提供程序进行模拟,即使用与您当前登录的 Windows 域帐户不同的 Windows 域帐户登录 SQL Server .

【讨论】:

    【解决方案2】:

    Microsoft 将 AD 与 SQL Server 的集成设计为使用客户端应用程序的帐户,而不是能够将登录作为连接字符串的一部分来处理。如果用户不打算使用数据库访问所需的帐户登录计算机,则下一个最佳选择可能是ShellRunAs,以便让用户以正确的 AD 帐户运行您的客户端应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      • 2021-11-20
      相关资源
      最近更新 更多