2011-04-05 46 views
2

我想運行一個控制檯應用程序用C#編寫的使用visual studio 2010 其中我正在訪問Microsoft Sql Server Managment Studio的臨時數據庫。無法打開登錄請求的數據庫「dbname」。登錄失敗。登錄失敗的用戶「機器名用戶名」

但應用程序提供的例外如下:

"Cannot open database "dbname" requested by the login. The login failed. Login failed for user `machinname\username"" 

而且我的連接字符串如下:

con.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=temp;Integrated Security=True"; 

爲什麼會這樣失敗,這樣的錯誤?

+3

公認的「請幫助儘快」用戶下運行。這裏沒有人有義務幫助你。 – 2011-04-05 20:40:14

+0

它似乎你的數據庫使用SQL身份驗證... – 2011-04-05 20:41:04

+1

對不起,重噸 – Nilesh 2011-04-05 21:15:52

回答

6

應用程序正在運行的用戶(可能是因爲這是一個控制檯應用程序),它沒有數據庫的登錄權限。

Integrated Security=True表示正在使用Windows身份驗證 - 要麼使用對數據庫具有適當權限的用戶,要麼向用戶授予適當的權限。

+0

我如何授予用戶權限? – Nilesh 2011-04-05 20:44:45

+0

@ user693730 - 您需要數據庫的管理員權限。使用Sql Server Management Studio - 在管理區域下,您可以添加用戶,登錄並設置正確的訪問權限。 – Oded 2011-04-05 20:47:14

+0

因爲我是新來的Sql服務器管理工​​作室,我無法找到管理區 – Nilesh 2011-04-05 20:58:55

1

如果您更改連接字符串以具有可與數據庫關聯的sql server用戶名和密碼,那麼它將工作,如果應用程序未在與sql server windows身份驗證關聯的Windows身份驗證下運行

請檢查您的基調 -
Data Source=.\SQLEXPRESS;Initial Catalog=temp;Persist Security Info=True;User ID=<username>;Password=<pw>" 

應用程序未在SQL Server

+0

'正確'的意思是一個Sql登錄。 :) – 2011-04-05 20:44:29

+0

好耶是嚴格正確的,然後是一個實際的sql服務器登錄lol – stack72 2011-04-05 20:45:14

+0

我的oint簡單地說,Sql有兩種身份驗證模式,沒有一個比另一個更合適。 :) – 2011-04-05 20:46:58

相關問題