在客户端计算机中部署我的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数据库。
答案 0 :(得分:0)
根据无法访问数据库错误消息,SQL实例的身份验证成功,但无法访问指定的数据库。这可能是因为EmdadKhodroDB数据库不存在,不在线,或者(很可能)在当前安全上下文下不可访问。确保您使用的帐户有权访问数据库和所需的对象权限。
下面的DCL会将用户添加到数据库中。您还需要直接向用户或用户所属的角色授予对象级权限。
USE EmdadKhodroDB;
CREATE USER [YourDomain\YourAccount];
答案 1 :(得分:0)
您还可以使用SQL Management Studio管理Windows用户权限。只需按照here中的说明创建新登录,并配置您需要访问的每个数据库的映射。
基本上,您需要确保正确定义了登录名(安全性 - >登录名),并且它具有EmdadKhordo数据库的适当权限(读取,写入等)。建议允许所需的最低权限(例如,如果用户只执行SELECT,INSERT,UPDATE,DELETE语句,则不允许更改表。)