首页 文章

无法打开登录请求的数据库 . 登录失败 . 用户登录失败

提问于
浏览
5

我从一台计算机上复制了一个数据库并在此处使用它 . 在尝试打开需要从DB获取内容的页面时,在con.open上我收到此异常:

无法打开物理文件“E:\ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ cakephp.mdf” . 操作系统错误32:“32(进程无法访问该文件,因为它正由另一个进程使用 . ”) . 无法打开物理文件“E:\ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ cakephp_log.LDF” . 操作系统错误32:“32(进程无法访问该文件,因为它正由另一个进程使用 . ”) . 无法打开登录请求的数据库“cakephp” . 登录失败 . 用户'Sarin-PC \ Sarin'登录失败 .

我已经从Management Studio Express 2008附加了数据库,我也检查了连接字符串 . 这里是:

<connectionStrings>
        <add name="cn" connectionString="server=.\sqlexpress;database=cakephp;integrated security=true;uid=sarin;pwd=******"/>
    </connectionStrings>

在Visual Studio中,当我测试连接时,它显示“测试连接成功” . 然而,有一件奇怪的事情正在发生 . 当我登录Management Studio时,没有新附加数据库的标志,如图所示 .

alt text

如果需要查看完整的WebConfig,我已将其粘贴在此处:http://pastebin.com/sVAuN0Ug

1 回答

  • 7

    有数据库的用户,但是,也有服务器的用户 . 一个用户必须拥有SqlServer的登录权限才能使用该数据库 .

    在您的情况下,您复制了数据库及其用户,但这些用户没有新服务器的登录权限 . 解决方案是在SqlServer上添加一个新的登录帐户(转到SqlServer的Security节点,而不是数据库的Security节点),并将其添加到那里 . 添加该用户时,也将其分配给数据库,这应该有效 .

    编辑:进一步阅读您的问题后,是否有可能有两个sql服务器瞄准相同的mdf文件?因为那不行 . 此外,在复制数据库文件时,您是否在复制之前将它们分离?如果这一切都很好,那么尝试进行备份然后恢复 .

相关问题