我正在嘗試做一些我認爲非常簡單的事情。 我有一個連接字符串,我從數據庫中抓取。當我創建一個SQL連接的新實例時,它看起來(當我調試並查看對象時),就像正在正確填充數據庫連接字符串一樣。但是,我得到的錯誤消息使我認爲數據庫名稱中的下劃線之後的所有信息都被消除了。忽略連接字符串中的下劃線後的數據庫名稱被忽略
典例:
Database db = new SqlDatabase(ConnectionString); // Connection string appears correct
DbCommand dbCommand = db.GetStoredProcCommand("StoredProcName");
DataSet approverDataset = db.ExecuteDataSet(dbCommand); // when this executes, exception is generated
當我運行這段代碼,我有以下異常消息招呼: 服務器主體「testdb_psidentity」不能在當前安全下訪問數據庫「TESTDB」背景
這裏是我的連接字符串:
DataSource=testserver.com;Database=testdb_ps;Trusted_Connection=false;uid=testdb_psidentity;pwd=testpwd
我試圖將此更改爲:
DataSource=testserver.com;Database=[testdb_ps];Trusted_Connection=false;uid=testdb_psidentity;pwd=testpwd
而雖然這似乎得到數據庫的全名,它似乎也正在尋找一個數據庫與名稱中的括號。當我收到此錯誤: 無法打開登錄請求的數據庫「[testdb_ps]」。登錄失敗。 用戶'testdb_psidentity'登錄失敗。
但是,我可以在SQL Server管理工作室中使用該登錄名/密碼登錄連接到數據庫。
任何方式我可以讓它接受數據庫名稱testdb_ps數據庫名稱?我無法簡單地更改數據庫名稱,因爲我沒有訪問權限,並且我被告知更改數據庫名稱不會發生。
您的用戶「testdb_psidentity」是否具有連接/執行數據庫權限?如果你不確定,你可以通過 - >右鍵單擊數據庫 - >屬性 - >權限 - >選擇用戶並在顯式選項卡下檢查... – NiK
不幸的是,當我右鍵單擊數據庫,我沒有看到這個。 –
達到,但嘗試將數據源放入語法[testserver.com]或[testserver]。[com]。你可以確定源代碼的名稱是testserver.com(不是testserver)。請參閱SMSS – Paparazzi