![使用 Active Directory 凭据登录 Microsoft SQL Server](https://linux22.com/image/709190/%E4%BD%BF%E7%94%A8%20Active%20Directory%20%E5%87%AD%E6%8D%AE%E7%99%BB%E5%BD%95%20Microsoft%20SQL%20Server.png)
我们的 Microsoft SQL Server 在属于 Active Directory 域的一部分的 Windows Server 上运行。
为了便于用户管理,我们的 SQL 授权是使用 Active Directory 用户组设置的,如下所述邮政。
现在,只要每个人都在域内工作,一切就都正常了。人们使用他们的 AD 凭据登录到他们的计算机,然后可以使用“Windows 身份验证”连接到 SQL 服务器。
问题是我们的用户还将在不属于 Active Directory 域的其他客户端计算机上工作(并且将它们添加到域中不是一种选择)。
我希望他们可以继续使用他们的 AD 凭据,通过使用 SQL Server 登录屏幕中提到的 AD 身份验证登录到服务器。
但这似乎不起作用。
使用 Acive Directory 密码验证登录时会出现证书问题。错误:“证书链由不受信任的机构颁发。”
Cannot connect to x.x.x.x.
===================================
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.) (.Net SqlClient Data Provider)
------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-2146893019&LinkId=20476 (page does not exist)
奇怪的是,如果我进入登录窗口的“选项”设置并选中“信任服务器证书”复选框,我突然无法连接到服务器,并且只收到错误消息。
Cannot connect to x.x.x.x.
===================================
Login failed for user ''. (.Net SqlClient Data Provider)
我想要的设置可以实现吗?如果可以,我该如何实现?:)
回顾: SQL 服务器在 AD 域中运行,用户具有 AD 凭据,但也需要能够使用其 AD 凭据从不属于 AD 域的客户端计算机登录。
答案1
错误消息表明证书是由不受信任的机构颁发的。最有可能的是您的 AD 域。
您可能想尝试以下几种解决方法:
- 此 dba.stackexchange.com 帖子建议单击上方连接窗口上的选项按钮,并
TrustServerCertificate=True
在“附加连接参数”下添加。这基本上是在告诉 SSMS,是的,你知道,就这么做吧。 - 如果这不管用,此 dba.stackexchange.com 帖子建议使用 runas 来欺骗 Windows。例如,
runas /netonly /user:domain\username "C:\path_to\ssms.exe"
我从未对 SSMS 这样做过,但值得一试,因为 OP 似乎和你的情况相似(我相信回答的人)。
无论如何,希望其中一种解决方法能够对您有所帮助。
答案2
最简单的方法就是以另一个用户身份运行 SQL Server。为此,请按照以下步骤操作:
- 导航到包含 SQL Server 快捷方式的文件夹,即:
- 按下 Windows 键
- 键入“SQL Server”
- 当应用程序在“最佳匹配”部分下弹出时,单击“打开文件位置”
Shift + Right-Click
捷径- 选择“以不同用户身份运行”
- 在提示符下,输入您的 AD 凭据
- 完毕!
对我来说,这个方法有效。我以为,如果我从登录屏幕选择“Active Directory - 密码”,就可以达到同样的效果,但是……不幸的是,它没有。