在Attach一个以前的数据库(没有在SqlServer初始安装的目录下)的时候,老是附加不上,总是出现5123的错误代码,如图:
一开始以为是SqlServer2008不兼容原来的数据库所致,在网上找了好大半天,都不行,一开始输出现得是5120错误,但是改了权限后出现了5123错误,这两种错误都是权限错误,并不是什么文件只读等等什么的。
因为这个数据库是不知道当时是那个版本创建的,在官方看了一下,解释说权限不对,应该把这个数据库放到SqlServer安装的目录下,也就是C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data,果然解决问题;不过总不能每次都把数据库放到这个目录下啊!所以又寻找了其他的解决方案;
第一种解决方案:就是刚才的方法,把这个文件放到SqlServer默认位置下,不过最好不要放在C盘,万一那天重装系统,就玩完了,哈哈;
第二种解决方案:就是更改Sqlserver实列的默认数据库文件夹,选中Sqlserver实例,右击属性,在左边有个“数据库设置”,点开后,有个“数据库默认位置”,把这个设置成自己的目录就可以了。
第三种解决方案:就是更改这个数据库所在文件夹的权限,添加一个EveryOne的用户,设置成”full control”,就可以了,这个方案即直接又方便;
第四种:
按一下方式修改你的SQL的MDF和LDF属性就可以了,选择你的文件(两种文件均要修改为一样的权限)
MDF文件:文件右键>>属性>>安全>>编辑>>添加>>高级>>立即查找>>在搜索结果中选择:Authenticated Users>>确定>>确定>>确定>>MDF文件属性对话框>>在组或用户名列表框中选择:Authenticated Users>>高级>>更改权限>>编辑>>选中“安全控制”>>确定>>确定>>确定>>确定。OK这是MDF的权限就分配完成了!
LDF文件的权限和MDF文件的权限控制一样,按照上面的步骤进行就行了!
如果有其他的附加错误,应该也是权限的问题,只要修改文件的权限就行了,多试试就完事OK!
如果有更好的解决方法,come on.一起交流~!