【问题标题】:How do I configure SQL Server Express 2017 for IIS如何为 IIS 配置 SQL Server Express 2017
【发布时间】:2018-06-08 06:44:50
【问题描述】:

我在 Windows Server 2016 上运行了新安装的 SQL Server Express 2017。IIS 10 无法访问此 SQL Server 上的数据库。 (Visual Studio 没有问题。)我需要在 SQL Server、IIS 和文件系统(.mdf 文件)中配置什么安全性?我已经研究了很多小时,但找不到当前的解决方案。我曾经可以通过在 NT AUTHORITY 下添加 NETWORK SERVICE 或 SYSTEM 来解决这个问题,但这似乎并不能解决问题。必须对应用程序池做些什么吗?

【问题讨论】:

  • 我得到的错误是“无法打开登录请求的数据库 xxx。登录失败。用户“WEBBER\s4$”登录失败,其中 WEBBER 是域,S4 是机器名。
  • 这意味着或者这个数据库不在线,或者你没有将你的登录名映射到这个数据库
  • 我相信我没有“映射您的登录”。我的问题是我要阻止哪个帐户,即 IIS 在哪个帐户下运行??
  • 服务应用程序说服务作为“本地系统”运行,但我似乎无法授予该名称权限。

标签: asp.net sql-server iis-10


【解决方案1】:

从您的 cmets 我猜您应该将您的登录名映射到您的数据库:

use xxx;
create user [WEBBER\s4$] from login [WEBBER\s4$];

这将修复您的错误,但对于正常工作,您还应该为您的用户授予必要的权限。

如果它应该控制数据库 xxx,让他成为 db_owner 像这样:

ALTER ROLE [db_owner] ADD MEMBER  [WEBBER\s4$];

您看到的“奇怪”名称是您电脑的名称,这是因为网络服务或本地系统帐户以电脑名称进入网络。

【讨论】:

  • 感谢 sepupic。我做了这两个(成功),但问题仍然存在。它仍然说登录失败。
  • 你确定你是先“使用xxx”吗?
  • 错误是否仍然引用 WEBBER\s4$ 或者它可能是 NT AUTHORITY\SYSTEM?如果这一切都发生在本地,NT AUTHORITY\SYSTEM 应该是 NT AUTHORITY\SYSTEM 而不是 WEBBER\s4$。尝试对 [NT AUTHORITY\SYSTEM] 登录做同样的事情:将其映射到数据库 xxx 并使他成为 db_owner
  • 我执行了以下脚本:use cagcgolfaspnetdb create user [NT AUTHORITY\SYSTEM] from login [NT AUTHORITY\SYSTEM];去 ALTER ROLE [db_owner] ADD MEMBER [NT AUTHORITY\SYSTEM] 去 cagcgolf 和 cagcgolfaspnetdb
  • 您在错误消息中看到的是“cagcgolfaspnetdb”还是“cagcgolf”?您需要将问题登录名映射到问题数据库,因此登录名和数据库名称应与您在错误消息中看到的相同
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多