2011-04-05 131 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

相关问题