【问题标题】:How can I set the user running the service?如何设置运行服务的用户?
【发布时间】:2013-06-24 08:48:16
【问题描述】:

我在笔记本电脑上使用带有 mdf 的 localdb 创建了一个 MVC4 Web 应用程序。文件。然后我将项目导出到桌面,然后将这些文件复制粘贴到运行 IIS 的 Win2k12 上的网络服务器。

复制后,我在 MSSQL Express 2012 服务器上创建了在同一台 Win2k12 服务器上运行的表,并在我的项目中修改了 web.conf 以针对服务器而不是 mdf 文件。

这就是一切都停止的地方,当我尝试发送数据时出现以下错误(应该与 sql server 通信,只要它不尝试与 sql server 通信,浏览页面就可以了):

无法打开登录请求的数据库“mc.foo.net”。登录失败。 用户 'IIS APPPOOL\mc.foo.net' 登录失败。

我猜用户 IIS APPOOL 是从我的笔记本电脑继承而来的,我在 Win2k12 服务器上没有这个用户。我该如何改变呢?和什么?我有几个用户(来自 SQL Server Manager 中服务器的安全性):

  • NT AUTHORITY\SYSTEM
  • NT 服务\MSSQLSERVER
  • NT SERVICE\SQLWriter
  • NT SERVICE\Winmgmt

除了我的域管理员。我该如何解决这个问题?

【问题讨论】:

标签: asp.net sql-server iis connection-string


【解决方案1】:

您可以在 IIS 管理器中轻松更改应用程序池标识。 在目标应用程序池上(在根/应用程序池下),选择高级设置。这是一个类别流程模型,您可以在其中指定池的标识。

内置帐户允许您使用网络服务/本地系统/... 而自定义允许您指定域或本地用户。就是这样!

不建议对应用程序池赋予过多的权限。这可能会损害您的应用程序的安全性,并且有时管理起来会很痛苦。因此,我强烈建议您对数据库使用 sql 身份验证并加密连接字符串。

【讨论】:

    【解决方案2】:

    您的问题似乎是用户在 DB 服务器上没有权限。

    有多种方法可以解决这个问题。

    1. 如果您通过集成安全连接到数据库...将其更改为本地 SQL 服务器或域用户名和密码。

    2. 授予您的 appPool 帐户 dataReader 或 dataWriter 访问权限(不建议用于生产)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 1970-01-01
      • 2013-07-12
      相关资源
      最近更新 更多