2016-11-20 93 views
0

在客戶端計算機上部署我的C#應用​​程序的勝利後,會出現以下錯誤:錯誤:底層提供程序在打開時失敗。 system.data.sqlclient.sqlexception用戶登錄失敗

The underlying provider failed on open.system.data.sqlclient.sqlexception

login failed for user. cannot open database "EmdadKhordo" Requested by the login

這是我的連接字符串:

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" 

我用實體框架來訪問SQL Server數據庫。

+0

可能是因爲您的連接字符串使用集成安全性。這意味着當前的Windows用戶將被用於連接到數據庫。如果你的數據庫不支持Windows身份驗證,那麼你會得到這個錯誤。 – user1681317

回答

0

基礎上不能訪問數據庫的錯誤信息,驗證成功的SQL實例,但指定的數據庫無法訪問。這可能是因爲EmdadKhodroDB數據庫不存在,不在線或在當前安全上下文中(很可能)無法訪問。確保您使用的帳戶有權訪問數據庫和所需的對象權限。

下面的DCL將把用戶添加到數據庫中。您還需要直接向用戶或用戶所屬的角色授予對象級權限。

USE EmdadKhodroDB; 
CREATE USER [YourDomain\YourAccount]; 
0

您還可以使用SQL Management Studio來管理您的Windows用戶權限。只需按照here中的說明創建新登錄,併爲每個需要訪問的數據庫配置映射。

基本上你需要確保登錄正確定義(安全性 - >登錄)和它對EmdadKhordo數據庫中的相應權限(讀,寫等)。建議允許所需的最小權限(例如,如果用戶僅執行SELECT,INSERT,UPDATE,DELETE語句,則不允許更改表)。

相關問題