【问题标题】:.NET web service with local SQL Server database [duplicate]具有本地 SQL Server 数据库的 .NET Web 服务 [重复]
【发布时间】:2012-11-28 13:33:42
【问题描述】:

可能重复:
Connecting to Database mdf without SQL Server

我有一个简单的 Web 服务,它可以工作并查询一个简单的 .mdf 数据库。

我正在使用 IIS 并使其成为一个工作应用程序。

我可以从任何地方激活此网络服务上的所有功能。

我正在运行 SQL Server 2005 Express。

我授予了运行它所需的所有权限。

但是当我尝试查询数据库时,我得到了这个错误:

*无法打开登录请求的数据库“网关”。登录 失败。
11-28 15:22:58.464:W/System.err(762):用户“NT AUTHORITY\NETWORK SERVICE”登录失败。

这是我的连接字符串:

<add name="gatewayConnectionString" 
     connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=gateway;Integrated Security=True" 
     providerName="System.Data.SqlClient"/>

【问题讨论】:

  • Daniel,问题是您不了解 SQL Server。这个数据库是从哪里来的?您应该从创建它的人那里获得帮助。
  • 我在我的 Visual Studio 2010 项目中创建了这个数据库。具有单个 Web 服务和数据库文件 (mdf) 的项目。我可以很好地运行这个 ws 方法...只是查询返回此异常的数据库的方法...

标签: asp.net .net sql-server database web-services


【解决方案1】:

当您在连接字符串中使用Integrated Security=True 时,您应该为您的“网关”数据库授予NT AUTHORITY\NETWORK SERVICE 用户的权限。以下是您可以执行的操作。

连接您的 SQL Server Management Studio,在您的服务器名称下方,转到 SECURITY,然后转到 LOGINS,您必须看到名称为 NT AUTHORITY\NETWORK SERVICE 的登录名/用户。如果看不到,请右键单击 LOGINS,单​​击 NEW LOGIN。将出现一个弹出窗口。点击“登录名”字段前面的搜索按钮。从这里,从您的计算机中搜索NT AUTHORITY\NETWORK SERVICE 用户并选择它。然后转到用户映射选项卡,选择您的数据库名称“网关”,选中复选框。然后从下面的复选框列表中选择db_owner 角色。选择确定。现在再次测试它。

我希望这能回答您的问题,如果是,请将其标记为“已回答”。

【讨论】:

  • 嗨,感谢您的回答。我这样做了,它仍然是一样的......出现同样的错误......
  • 您是否将域或计算机用户的“NT AUTHORITY\NETWORK SERVICE”添加到数据库中?域帐户不起作用,本地计算机帐户只能起作用。还可以尝试添加“公共”权限以及“db_owner”.permissions。
猜你喜欢
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
相关资源
最近更新 更多