繁体   English   中英

SqlException:无法打开登录请求的数据库“ path \\ db.mdf”。 登录失败。 用户“ NT AUTHORITY \\ SYSTEM”的登录失败

[英]SqlException: Cannot open database “path\db.mdf” requested by the login. The login failed. Login failed for user 'NT AUTHORITY\SYSTEM'

我知道这个问题已经被问过很多次了,但是我仔细查看了答案,却没有找到解决问题的方法。

我用C#构建了Windows Service ,该Windows Service连接到数据库并用其他来源的数据填充它。 我为ServiceProcessInstaller StartType -> Automatic Account -> LocalSystem ,为ServiceInstaller StartType -> Automatic

我使用实体框架从数据库生成.edmx,这是一个连接字符串:

<add name="ConStringName"
         connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;
     provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;
     attachdbfilename=&quot;somePath\MyDbName.mdf&quot;;
     integrated security=True;connect timeout=30;
     MultipleActiveResultSets=True;
     App=EntityFramework'"
         providerName="System.Data.EntityClient" />

我有这段代码:

var objContext = ((IObjectContextAdapter)dbContext).ObjectContext;
objContext.ExecuteStoreCommand("DELETE FROM Properties;");

在第二行,我得到

Cannot open database "path\DbName.MDF" requested by the login. The login failed.
Login failed for user 'NT AUTHORITY\SYSTEM'.

到目前为止,我已经尝试过:

1)对每个数据库表尝试以下代码:

GRANT SELECT, INSERT, UPDATE, DELETE ON  dbo.TableName TO "NT AUTHORITY\SYSTEM";

而且没有dbo。

 GRANT SELECT, INSERT, UPDATE, DELETE ON  TableName TO "NT AUTHORITY\SYSTEM";

2)我已经在数据库中为此用户“ NT AUTHORITY \\ SYSTEM”设置了权限:
在SSMS中:数据库=> myDatabase->安全->用户->'NT AUTHORITY \\ SYSTEM'->属性->成员资格-> db_owner

3)试图在SQL Server中为此帐户设置权限:数据库->安全->登录->'NT AUTHORITY \\ SYSTEM'->属性->在此处设置db_owner

奇怪的是:有一次我重新启动计算机,一切正常! 像这样,LocalSystem拥有权限,Windows Service可以访问数据库并执行所有操作!

但是比起某些情况之后,此异常开始再次出现。 我试图重新启动计算机,但是失败了。

我知道我缺少明显的东西。 请帮我找到这个东西。

与其尝试为本地系统帐户设置对数据库的权限,不如执行以下操作之一:

  1. 将运行Windows服务的帐户更改为数据库中已具有权限的Windows帐户。

  2. 不要在您的连接字符串中使用integrated security=True ,而是指定一个User IdPassword

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无法打开登录请求的数据库。 登录失败。 用户“ NT AUTHORITY \\ SYSTEM”的登录失败 LocalDb-&gt; Windows服务-&gt;无法打开登录请求的数据库“”。 登录失败。 用户“ NT AUTHORITY \\ LOCAL SERVICE”的登录失败 无法打开登录请求的数据库。 用户“NT AUTHORITY\\SYSTEM”登录失败。 Quartz 调度程序 Windows 服务 无法打开登录请求的数据库“ [数据库]”。 登录失败。 用户“ [User]”的登录失败 用户&#39;&#39;登录失败,无法打开登录请求的数据库“Database1.mdf”。 登录失败。 用户&#39;rBcollo-PC \\ rBcollo&#39;登录失败 无法打开登录请求的数据库“身份”。 登录失败。 用户“DESKTOP\User”登录失败 无法打开登录请求的数据库“MyBase”。 登录失败。 用户“域\用户”登录失败 无法打开登录请求的数据库“ Inventory_New”。 登录失败。 用户“ sa”的登录失败 无法打开登录请求的数据库“ ASPState”。 登录失败。 用户“ xxxx”的登录失败 无法打开登录请求的数据库“test”。 登录失败。 用户 &#39;Domain\\userid&#39; 登录失败
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM