SQL 服务器使用现有的 IIS 应用程序池和内置 VB.NET 的 Windows 表单应用程序

SQL Server use existing IIS Application Pool with a Windows Form application built in VB.NET

我志愿帮助一家非营利性公司,该公司拥有由当地大学毕业但不再可用的学生构建的 Web 应用程序。他们在 Windows 服务器网络上将 ASP.NET 用于 Web 应用程序,将 SQL 服务器用于数据库。它使用 IIS 应用程序池登录 SQL 服务器,登录:IIS APPPOOL\DefaultAppPool.

由于我没有 ASP.NET 经验,因此我在 VB.NET 中重新编写了应用程序并添加了功能。我还最终在同一台服务器、同一目录上构建了一个新数据库,并在我们认为新应用程序准备就绪时导入当前数据库。我研究了应用程序池。

问题:VB.NET Windows Form .EXE 应用程序可以使用现有的 IIS APPPOOL 连接到 SQL 服务器吗?

我正在尝试尽量减少普通用户对 SQL 服务器计算机的访问,而不是弄乱当前系统。目前,普通用户对 SQL 计算机没有 AD 网络 read/write 权限,他们可以访问其 citrix 桌面上的现有 Web 应用程序。

第二个问题:如果 .EXE 应用程序不能使用 IIS APPPOOL,我的研究表明与用户建立一个 AD 组,为该组添加具有 SQL 权限的 SQL 服务器登录到数据库并使用 Windows 身份验证连接到 SQL 服务器。 SQL 服务器计算机上的哪些目录需要为新组分配 AD 权限? 我只尝试了我构建的数据库的 .mdf 和 .ldf 文件,但登录失败。感谢您的帮助。

QUESTION: Can the existing IIS APPPOOL be used by the VB.NET Windows Form .EXE app to connect to the SQL Server?

没有。 IIS 仅由 webapps

使用

Secondary Question: If an .EXE app can not use the IIS APPPOOL, my research shows make an AD Group with the users, add an SQL Server Login for that Group with SQL rights to the database and use Windows Authentication to connect to the SQL Server. Which directories on the SQL Server computer need AD rights assigned to the new Group? I tried just the .mdf and .ldf files for the database I built and the login failed.

您可以使用基本 windows 身份验证,即使您不使用 IIS。您可以在 sql 服务器中创建一个 windows 组,将用户添加到该组。 .但一个问题仍然存在,用户需要右键单击应用程序并连接 运行 作为该组的设置..

为避免这种情况,您可以直接创建用户并为其分配权限

如果您使用 sql 服务器登录,您的用户可以直接登录..当他们 运行 应用程序时,他们可能会面临输入凭据的提示..

对于目录部分,您只需确保,sql 服务器 运行 因为帐户对该目录具有完全权限

应用程序池是 IIS 内部方法,甚至可以将 运行 在该 Web 服务器上的网站彼此分开。重点是网站不应该也不能访问其他网站的应用程序池,因此您的 Windows Forms 应用程序也不能这样做。

这并不意味着您不能访问同一个 SQL 服务器或同一个数据库,当然可以。但这取决于您的连接设置,两者将是两个不同的 SQL 服务器会话,两个或更多 SQL 服务器进程。

这也回答了次要问题:您必须定义连接,可能在您的应用程序中使用连接字符串。这取决于你如何做到这一点。为用户选择什么样的安全模型由您决定。