无法打开登录请求的数据库“MyDb”。登录失败。用户'My-PC \\ MrD'登录失败

时间:2015-05-13 10:35:42

标签: c# sql-server-express

我从C#控制台应用程序整天连接到我的本地数据库(SQL Express)。

我做了一个更新,我使用ADO.NET在C#代码中创建数据库和表

当我这样做时,我的正常连接字符串失败,即

    Data Source=.\\sqlexpress;  Trusted_Connection=True;  Initial Catalog=ThisIsMyDataBase;

错误消息是

Cannot open database "ThisIsMyDataBase" requested by the login. The login failed.\r\nLogin failed for user 'My-PC\\MrD'.

如果我在SSMS中打开表,那么我可以使用Windows身份验证访问所有内容。

我的印象是Trusted_Connection=True意味着我有权限,并且我使用我的Windows帐户(不是SQL帐户)访问它意味着我没有看到这个问题,但我显然是错的。我不知道如何解决这个问题。

3 个答案:

答案 0 :(得分:0)

您可能没有与您的WIN用户关联的sql server登录,映射到数据库用户。

检查您的模型数据库(在管理工作室中的系统数据库下)是否在“安全/用户”下列出了您的WIN用户。如果没有,请添加它。然后删除MyDb数据库并使用您的代码再次创建它。 CREATE DATABASE语句使用model数据库的副本来创建新数据库及其元数据。

答案 1 :(得分:0)

错误本身就是说用户没有访问failed for user 'My-PC\\MrD'.从sql server本身登录用户

答案 2 :(得分:0)

我有解决方案,但我根本不理解

答案是用较少的字符重命名数据库。我的实际数据库长度为27个字符,我只给它一个4个字符的长名称(简称为My01),它运行正常。