使用Microsoft Excel连接到Microsoft SQL只能使用受信任的连接



问题:

我想从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 'DOMAINCurrentLoggedInWindowsUsername'

当我移除连接字符串Trusted_Connection=YES时,连接工作得非常好。

解决方法:

我确实找到了一个变通办法。当我在MS Sql Server上为特定的windows用户帐户创建登录帐户时,该用户能够通过可信连接连接到数据库。

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

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


问题:

你知道如何确保在不将每个windows用户帐户添加到Microsoft SQL中的情况下创建一个受信任的连接字符串吗?

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

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

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

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

在SQL Server中创建一个函数用户帐户,并在Excel VBA代码中添加该用户帐户。请确保此帐户具有对所有必需的DB对象的RW访问权限。一旦它被添加到excel中,所有用户都可以访问数据库,而不会出现任何问题。

相关内容

最新更新