Han*_*ood 12 database sql-server database-connection database-administration sql-server-express
我在程序使用的本地文件中有一个数据库.该程序功能有限,我需要运行一些快速查询.我安装了SQL Server Management Studio Express 2005(SSMSE),连接到SQL Server实例,附加了数据库文件,并运行了查询.现在原始程序将不再连接到数据库.我收到错误:
无法打开用户默认数据库.登录失败.用户'MyComputer\MyUserName'登录失败.
我已经回到SSMSE并尝试设置默认数据库.我打开了Security,Logins,BUILTIN\Administrators和BUILTIN\Users.在General下,我已将默认数据库设置为程序的数据库.在User Mappings下,我确保勾选了数据库,并勾选了db_datareader和db_datawriter.
该程序使用连接字符串:
服务器=(本地)\实例; AttachDbFilename = C:\ PathToDatabase\Database.mdf; 综合安全=真; 用户实例=真;
我知道关于数据库管理的杰克.我还缺少什么?
Mik*_*eel 14
当我将默认数据库脱机时,这个问题就出现了。接下来我知道我无法登录。切换到“连接属性”选项卡并选择下拉菜单来更改我想要连接的数据库也失败。
当我手动输入 master 作为我想要连接的数据库(在“连接属性”选项卡上)时,它立即让我进入。
这可能没有具体回答您的问题,但它会帮助其他类似的问题
问题是您的用户默认为无法以任何理由访问的数据库(可以重命名,删除,损坏或...)要解决此问题,请按照以下说明操作
连接到SQL Server实例后,执行以下TSQL为登录分配新的默认数据库.
Use master
GO
ALTER LOGIN [yourloginname] WITH DEFAULT_DATABASE = TempDB
GO
Run Code Online (Sandbox Code Playgroud)或者,连接后,通过UI将默认数据库名称更改为master
文章摘自:http: //www.mytechmantra.com/LearnSQLServer/Fix-cannot-open-user-default-database-Login-failed-Login-failed-for-user-SQL-Server-Error/
小智 6
首先,尝试隔离您的问题:
我没有对程序执行方式附加的文件做太多工作 - 但是你写的是你也在管理工作室中附加了数据库.在运行程序之前,您是否尝试将其分离?也许您看到Management Studio和您的程序竞争独占访问MDF文件?
编辑:我在上面添加了第6点 - 这是我自己的TODO列表中的新功能,在对此类登录失败进行故障排除时.但它确实听起来很像你正在经历的.
EDIT2:在第一次编辑中,新项目已添加到列表中.因此,评论中的数字与答案中的数字不一致.
我终于明白了这一点,我的情况与我今晚读到的其他人的情况不同。
我已经从备份中恢复了数据库。我知道我一直在使用一个特定的登录用户,因此我在 SSMS 中创建了该用户。但是,随备份进入的数据库下已经存在一个具有该名称的用户。
由于我花了很多精力试图解决这个问题,所以我无法轻松删除数据库下的用户。我删除了数据库并再次恢复。然后:
摘要:我有两个用户。一份是数据库附带的,一份是我创建的。删除数据库附带的数据库并创建您自己的数据库。