今天用SQL Server 2008的attach功能附加一个数据库,出了点问题,提示的错误是:
Unable to open physical file "D:\Documents\Dalt\XXXX.mdf" Operating system error 5: "5(error not found)" (Microsoft SQL Server: Error 5120)".
记得以前做过类似的操作没有出现什么问题的,不知道为什么会这样,没办法在网上找解决方法,
msdn论坛里说需要给.mdf,.ldf文件添加一个用户权限,运行下面的语句查找这个权限的名称
1
declare
@sqlser
varchar
(
20
)
2 EXEC master..xp_regread @rootkey = ' HKEY_LOCAL_MACHINE ' , @key = ' SYSTEM\CurrentControlSet\Services\MSSQLSERVER ' ,
3 @value_name = ' objectname ' , @value = @sqlser OUTPUT
4 PRINT ' Account Starting SQL Server Service: ' + convert ( varchar ( 30 ), @sqlser )
2 EXEC master..xp_regread @rootkey = ' HKEY_LOCAL_MACHINE ' , @key = ' SYSTEM\CurrentControlSet\Services\MSSQLSERVER ' ,
3 @value_name = ' objectname ' , @value = @sqlser OUTPUT
4 PRINT ' Account Starting SQL Server Service: ' + convert ( varchar ( 30 ), @sqlser )
在我的机器上得到的结果是:Account Starting SQL Server Service:LocalSystem,然后右击包含.mdf,.ldf文件的文件夹,切换到Security界面,添加LocalSystem用户。在这里我始终找不到这个用户,如下图
不过这里有一些用户如:User(PRCHAZ01210\User),Administrator(PRCHAZ01210\User),我给后者添加了Full control权限,再尝试attach, 没想到还成功了,也不知道上面的那个语句查出来的什么信息,等有时间再看看。
作者:Tyler Ning
出处:http://www.cnblogs.com/tylerdonet/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址williamningdong@gmail.com 联系我,非常感谢。