【问题标题】:Can't gain access to local SQL for modification无法访问本地 SQL 进行修改
【发布时间】:2012-08-03 20:50:24
【问题描述】:

我已获得生产 SQL 数据库的备份,以便开始编写应用程序。
我已经让它作为本地实例运行并使用 Windows 身份验证,我可以阅读信息,但是我无法弄清楚如何让 IIS 在运行本地 ASP.Net 网站时使用我的 Windows 身份验证登录到 SQL 服务器。

我没有在数据库上添加用户的权限,当我尝试访问读取数据库的页面时,我收到System.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\NETWORK SERVICE'. 错误。

我想我暂时无法与数据库管理员沟通,让他为我解决这个问题。有什么我可以在这里做的吗?

【问题讨论】:

  • 让 IIS 使用 您的 凭据是一个难题。我建议您在连接字符串中使用用户名/密码。如果您想尝试一下,请在网上搜索“iis sql-server kerberos delegate”。
  • @Andomar :我肯定想使用用户名/密码....但由于某种原因我无权将其添加到数据库中。 :(

标签: asp.net sql-server iis


【解决方案1】:

您的 asp 代码使用与 IIS 运行相同的身份 - 网络服务帐户。要让它使用您的凭据,您可以将它们硬编码到连接字符串中,也可以使用模拟(请参阅此链接:http://msdn.microsoft.com/en-us/library/aa292118%28VS.71%29.aspx

链接的要点: 把它放在你的 web.config 文件中:<identity impersonate="true" />

-t.

【讨论】:

  • 只是“-t.”?这在 web.config 中到底在哪里?
  • 这是我第二次看到关于这个问题的短语“把它放在你的 web.config 中”,两次都是空白文本......我猜那里是格式问题吗?
  • @james 是的,文本编辑器会去除类似 xml 的格式,除非它被格式化为代码(您通常可以通过查看帖子的原始源来检查)。另外,我很确定'-t'。只是为了他的名字大声笑
  • 这导致我现在遇到错误:用户'NT AUTHORITY\IUSR'登录失败。
  • 好吧,我在添加该步骤后就可以正常工作了,然后我必须转到 SQL 实例并将“NT AUTHORITY\IUSR”添加到登录然后转到特定数据库并将其添加到该数据库的用户。
【解决方案2】:

您需要在 SQL Server 中为网络服务帐户创建一个帐户,例如通过 SSMS 通过“安全”部分,右键单击“登录”并选择添加。您将添加一个 Windows 帐户,然后您可以查找并验证名称“NETWORK SERVICE”。然后切换到“用户映射”部分并授予查看数据库的权限。

参考:http://msdn.microsoft.com/en-us/library/ms998320.aspx#paght000015%5Fsqlserver

第二选择 如果您的连接字符串中有“integrated security=sspi”,那么您应该:

  1. 在 IIS 中启用集成身份验证
  2. 在asp.net中开启windows auth
  3. 在 asp.net 中打开模拟

希望它会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 2020-11-03
    • 2016-08-07
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多