【问题标题】:Connect with Microsoft Excel to Microsoft SQL only works with trusted connection使用 Microsoft Excel 连接到 Microsoft SQL 仅适用于受信任的连接
【发布时间】:2020-07-21 11:44:10
【问题描述】:

问题:

我想从Microsoft Excel 365 连接到Microsoft SQL Server 2016 内的数据库。

连接字符串已经包含一个帐户的用户名和密码,该帐户是作为用户在特定 SQL 数据库上创建的。

有一个问题,当我想用​​这个扩展连接字符串时:Trusted_Connection=YES

在这种情况下,它不起作用。我收到以下错误消息:

SQLState: '28000'
SQL Server-Error: 18456
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'DOMAIN\CurrentLoggedInWindowsUsername'

当我删除连接字符串Trusted_Connection=YES 时,连接工作得很好。

解决方法:

我确实找到了一种解决方法。当我在 MS Sql Server 上为特定的 windows 用户帐户创建登录帐户时,用户能够通过受信任的连接连接到数据库。

但我不喜欢这样做,因为我已经创建了一个特定的用户,该用户在连接字符串中被提及。此外,我想与多个用户共享此 excel,我不想在 Microsoft SQL Server 中为每个人创建登录。

请注意,我已经确定 SQL Server and windows Authentication 模式已设置。


问题:

您有什么想法,我如何确保创建一个受信任的连接字符串,而无需在 Microsoft SQL 中添加每个 Windows 用户帐户?

【问题讨论】:

  • SQL Server Management Studio v17.9.1 不是 SQL Server 的版本,而是 SSMS 的版本;用于与 SQL Server 交互的 IDE。至于问题,如果在您删除 Trusted_Connection=YES 时连接“有效”,那么这听起来像是您在说您传递了该参数以及一些 Windows 凭据。这不是它的工作原理。您可以通过登录名和密码,并使用 SQL 身份验证,或者使用受信任的连接。但这是一个猜测,基于我们掌握的信息。如果您查看 SQL Server 的日志,您将看到真正的身份验证失败原因。
  • @Larnu 非常感谢,我刚刚更新了 SQL 版本。但是我是否理解正确:如果连接字符串包含 SQL 用户名和密码,则不需要 Trusted_Connection(因为它不通过 Windows 登录进行连接)。顺便问一下,您指的是哪些 SQL 日志?

标签: sql-server excel database


【解决方案1】:

Trusted_connection 表示连接正在使用当前登录的用户详细信息并将这些信息传递给 SQL Server 以进行身份​​验证(Windows 身份验证)。

如果您想使用 SQL 身份验证(用户名和密码),请不要使用此标志。

看看这篇文章,可能有助于解释不同的身份验证方法。 https://docs.microsoft.com/en-us/sql/relational-databases/security/choose-an-authentication-mode?redirectedfrom=MSDN&view=sql-server-ver15

如果您想使用 Windows 身份验证(trusted_connection 标志)并且不想单独添加用户,您可以选择将用户添加到域组并为该组设置正确的权限。但是,如果您想使用 SQL 身份验证,则从问题的字里行间阅读,您应该忽略此标志

【讨论】:

  • 非常感谢,就是这样。 Trusted_Connection 忽略连接字符串中使用的凭据。现在说得通了。
【解决方案2】:

在 SQL Server 中创建一个功能用户帐户,并在 Excel VBA 代码中添加该用户帐户。确保此帐户对所有必需的数据库对象具有 RW 访问权限。将其添加到 Excel 中后,所有用户都可以毫无问题地访问数据库。

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多