错误:基础提供程序在打开时失败。 system.data.sqlclient.sqlexception用户登录失败

时间:2016-11-20 09:36:15

标签: c# sql-server windows-applications

在客户端计算机中部署我的C#win应用程序后,会出现以下错误:

  

底层提供程序在open.system.data.sqlclient.sqlexception

上失败      

用户登录失败。无法打开数据库" EmdadKhordo"请求登录

这是我的连接字符串:

metadata=res://*/Models.EmdadKhodroDB.csdl|res://*/Models.EmdadKhodroDB.ssdl|res://*/Models.EmdadKhodroDB.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=EmdadKhodroDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"

我使用Entity Framework访问SQL Server数据库。

2 个答案:

答案 0 :(得分:0)

根据无法访问数据库错误消息,SQL实例的身份验证成功,但无法访问指定的数据库。这可能是因为EmdadKhodroDB数据库不存在,不在线,或者(很可能)在当前安全上下文下不可访问。确保您使用的帐户有权访问数据库和所需的对象权限。

下面的DCL会将用户添加到数据库中。您还需要直接向用户或用户所属的角色授予对象级权限。

USE EmdadKhodroDB;
CREATE USER [YourDomain\YourAccount];

答案 1 :(得分:0)

您还可以使用SQL Management Studio管理Windows用户权限。只需按照here中的说明创建新登录,并配置您需要访问的每个数据库的映射。

基本上,您需要确保正确定义了登录名(安全性 - >登录名),并且它具有EmdadKhordo数据库的适当权限(读取,写入等)。建议允许所需的最低权限(例如,如果用户只执行SELECT,INSERT,UPDATE,DELETE语句,则不允许更改表。)