VB.net - 活动目录连接字符串

Posted

技术标签:

【中文标题】VB.net - 活动目录连接字符串【英文标题】:VB.net - Active Directory Connection String 【发布时间】:2017-12-15 18:29:42 【问题描述】:

所以我有一个问题,我似乎无法弄清楚。 我需要一个连接字符串以允许程序使用 Active Directory 帐户连接到 SQL Server。

但是,Active Directory 帐户与登录帐户的用户不同,因为我们不想让用户仅访问程序即可访问 SQL...如何配置连接字符串以使用程序AD 帐户而不是用户的 AD 帐户?

【问题讨论】:

您可以简单地将程序 AD-Account 插入连接字符串而不是用户 AD 吗?你试过这个吗?或者请说明您的问题! 你有例子吗? 【参考方案1】:

如果您想为您的程序使用专用服务帐户,则需要使用 SQL(混合)登录而不是集成登录。

无法使用来自与运行当前进程的帐户不同的 Active Directory 帐户的凭据连接到 Sql Server。在进行集成 Active Directory 身份验证时,Sql Server 仅使用域颁发的令牌。它甚至都看不到密码,因此没有可以编写的连接字符串来进行登录。

您最接近的方法是在 Windows 中设置一个计划任务,以您所需的用户帐户运行您的应用程序。然后,您可以授予其他帐户访问权限以启动该任务。

【讨论】:

好的,所以我认为要么我解释得不够好,要么我不理解您的答案...我正在尝试使用集成安全性连接到 SQL 数据库...但是运行应用程序的用户无权访问 SQL Server,因此它失败了。那么当用户没有或不允许访问 SQL Server 时,如何使用 AD 连接到 SQL 数据库? @MarkSmith 您授予该帐户对服务器的访问权限。 SQL Server 不会验证 Active Directory 凭据。 从来没有。当用户登录到连接到 Active Directory 的计算机时,他们会获得一个身份验证令牌。 Sql Server 集成身份验证将仅验证这些令牌。集成身份验证从不检查任何人的用户名或密码。将不同 AD 用户的令牌发送到 Sql Server 的唯一方法是以该用户身份运行程序(按住 shift 键,右键单击程序图标,然后使用“以不同用户身份运行”选项)。 好的,谢谢...我最终使用模拟来允许程序使用与当前登录用户不同的 AD 帐户。

以上是关于VB.net - 活动目录连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何为我的项目(VB.Net)中的所有水晶报表设置全局连接字符串

在VB.net中,连接SQL Server数据库的连接字符串的问题。

从 VB.Net 中的 app.config 获取动态更新的连接字符串

在 VB .NET 中查找并启动 *** 连接

如何在 vb.net 中完全关闭 SQLConnection 字符串?

[VB.NET Tips]再谈字符串连接之内置池