SQLServer 附加数据库后出现只读或失败的解决方法
sqlserver附加数据库错误823的解决方案
单位一台单机刷卡的机器,sql2000数据库,数据库名后面有“(置疑)”字样,程序无法使用。
从网上搜到方法:解决办法:在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Data.mdf和Test_log.LDF覆盖刚才新建数据库目录下的Data.mdf和Test_log.LDF,同时删除Test_log.LDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。
不要紧,打开SQL自带查询分析器,分别执行如下SQL语句:第一、exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE第二、update sysdatabases set status=32768 where name='数据库名'第三、DBCC REBUILD_LOG ('数据库名','D:\database\Test_Log.LDF')--这个没执行成功!!第四、update sysdatabases set status=0 where name='数据库名'第五、restore database 数据库名WITH RECOVERY第六、exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE按照此方法操作,应该能修复数据库正常访问了。
如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库(Test)各个表的数据导出到新建数据库表中。
============================================================补充说明:用上面的六步把数据库置疑的问题解决了,但是数据库表里还有损坏的表(inf_gdscode),把坏表导出的时候也不成功。
SQLServer数据库连接失败错误及解决方法
SQLServer数据库连接失败错误及解决方法SQL Server 自带的客户端工具(以企业管理器为例)连接SQL Server时,最常见的错误有如下一些:1、SQL Server 不存在或访问被拒绝ConnectionOpen (Connect())2、用户'sa'登录失败。
原因:未与信任SQL Server 连接相关联。
3、超时已过期。
下面我们依次介绍如何来解决这三个最常见的连接错误。
第一个错误“SQL Server 不存在或访问被拒绝“通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。
一般说来,有以下几种可能性:1、SQL Server名称或IP地址拼写有误;2、服务器端网络配置有误;3、客户端网络配置有误。
要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。
首先,检查网络物理连接:ping 服务器IP地址或者ping 服务器名称如果ping 服务器IP地址失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。
还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server。
防火墙软件可能会屏蔽对ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。
如果ping 服务器IP地址成功而ping 服务器名称失败,则说明名字解析有问题,这时候要检查DNS 服务是否正常。
有时候客户端和服务器不在同一个局域网里面,这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进行名字解析,具体的方法是:1、使用记事本打开HOSTS文件(一般情况下位于C:\WINNT\system32\drivers\etc).2、添加一条IP地址与服务器名称的对应记录,如:172.168.10.24 myserver也可以在SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明。
SQl server 2008 附加数据库失败如何解决
SQl server 2008 附加数据库失败如何解决
通过附加功能添加现成的数据库是非常方便的,然而有时会出现附加数据库失败。
那么,我们该如何解决此问题?
方法一、
1.
找到要添加数据库的.mdf文件,点击右键,选择属性。
2.
在属性页面点击安全,选择Authenticated Users,单击编辑
3. 3
Authenticated Users权限中选择完全控制,点击确定,点击属性界面的确定。
4.
同理,右键点击数据库的.ldf文件,打开属性。
按以上步骤再次设置即可。
5.
完成以上步骤,再进行附加数据库,这时就可以。
END
方法二、
1.打开数据库实例的安装目录,打开DATA文件夹。
(如我的实例目录地
址为:D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 也可能当时安装时装在C盘了)
2.将要附加的数据库.mdf文件和.ldf文件,剪切或复制到DATA
文件夹里。
3.完成以上步骤,再次附加数据库。
这时就可以了。
数据库附加出错数据怎么恢复
针对用户常见的数据库附加出错原因,这里给大家介绍四种解决数据库附加出错的解决方法:
(1)切换登录方式
出现这种情况是由于用“混合验证方式”(SL Server身份验证)登录数据库造成的,只要将登录方式改为“windows身份验证方式”登录即可解决该问题,附加成功后再换用“混合验证模式”登陆就没问题了ata文件夹(如目录地址为:D:\Microsoft SL Server\MSSL10.MSSLSERVER\MSSL\DATA 也可能当时安装时装在C盘了)。将要附加的数据库mdf文件和ldf文件,剪切或复制到data文件夹里。完成以上步骤,再次附加数据库。这时就可以了。
(2)修改服务
选择 所有程序-SL Server 2005-配置工具-选择&uot;SL Server Configuration Manager&uot;或者“SL Server 配置管理器”,打开“SL Server Configuration Manager”配置界面,在左侧选择&uot;SL Server 2005 服务&uot;,在右侧右击打开“SL Server (SLEXPRESS)” 的属性,在内置账户处将网络服务--”Network Service”改为本地系统--&uot;Local System&uot;,点击“重新启动”后再附加数据库就可以了。
因为造成数据库附加出错的原因非常多,所以用户很难有针对性的进行修复,只能将不同的解决方法进行尝试,从而导致很多用户
(3)修改权限
找到要添加数据库的.mdf文件,点击右键,选择属性。在属性页面点击安全,选择Authenticated Users,单击编辑。Authenticated Users权限中选择完全控制,点击确定,点击属性界面的确定。
SQLServer数据库连接失败错误及解决方法
SQL S erver数据库连接失败错误及解决方法在使用SQL S erver的过程中,用户遇到的最多的问题莫过于连接失败了。
一般而言,有以下两种连接SQ L Ser ver 的方式,一是利用SQ L Ser ver 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP脚本、VB程序等,客户端程序中又是利用ODBC或者OL E DB等连接S QL Se rver。
下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题。
一、客户端工具连接失败在使用S QL Se rver自带的客户端工具(以企业管理器为例)连接SQLServe r时,最常见的错误有如下一些:1、SQLServe r 不存在或访问被拒绝Conne ction Open(Conn ect())2、用户'sa'登录失败。
原因:未与信任SQL Serv er 连接相关联。
3、超时已过期。
下面我们依次介绍如何来解决这三个最常见的连接错误。
第一个错误"SQL S erver不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。
一般说来,有以下几种可能性:1、SQL Serv er名称或IP地址拼写有误;2、服务器端网络配置有误;3、客户端网络配置有误。
要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。
首先,检查网络物理连接:ping<服务器I P地址>或者p ing <服务器名称>如果pi ng <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。
SQLServer附加数据库报错无法打开物理文件,操作系统错误5的图文解决教程
SQLServer附加数据库报错⽆法打开物理⽂件,操作系统错
误5的图⽂解决教程
问题描述:
附加数据时,提⽰⽆法打开物理⽂件,操作系统错误5。
如下图:
问题原因:可能是⽂件访问权限⽅⾯的问题。
解决⽅案:找到数据库的mdf和ldf⽂件,赋予权限即可。
如下图:
找到mdf和ldf⽂件,本演⽰以ldf为例。
1.点击⽂件右键属性-->安全-->编辑
2.编辑-->添加
3.添加-->⾼级
4.⾼级-->⽴即查找-->搜索结果中找到-->Everyone-->确定-->确定
5.确定-->默认选中的Everyone⽤户-->Everyone的权限-->勾选"完全控制"即会把下⾯所有未勾选的都默认勾选上。
-->确定-->确定。
即Everyone的权限完成。
以上所述是⼩编给⼤家介绍的SQL Server附加数据库报错⽆法打开物理⽂件,操作系统错误5的图⽂解决教程,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
在此也⾮常感谢⼤家对⽹站的⽀持!。
SQLServer附加数据库之后出现只读或失败的解决方法
SQLServer附加数据库之后出现只读或失败的解决方法
SQLServer 附加数据库之后出现只读或失败的解决方法
方法一:
碰到这中情况一般是使用的 sa 或者其它 SQL Server 身份验证登录的,只要改为 Windows 身份验证,再附加数据库即可。
方法二:
右键选择数据库–> “属性” –> “选项” –> “状态”,发现“数据库为只读”这一项为True,改为False,如果能够修改的话,那么恭喜你,你的人品不错哦!
我在修改的.时候又报了这样一个错误:
这种情况下,找到你的数据文件和日志文件,右击“属性”-->“安全”,添加一个“Network Service”账户,或者直接修改Users 用户权限,赋予该账户完全控制的权限即可。
连接SQL server数据库出现错误怎么办?如何修复数据库?
连接SQL server数据库出现错误怎么办?如何修复数据库?很多朋友在连接SQL server数据库的过程中,经常会出现数据库报错的的情况,很多用户都对报错的原因无法理解,而网络上对于数据库报错的解决方法也没有详细的说明,用户无法采取有效的措施对数据库故障进行解决,进而无法找回数据库文件。
针对这种情况,下面我们就来了解一下数据库出错的原因及修复数据库的方法吧!一般而言, SQL Server 数据库有两种连接方式,一是利用SQL Server自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用 ODBC 或者 OLE DB 等连接 SQL Server。
打开 SQL Server 数据库出错的可能原因主要有以下几点:1.“SQL Server 不存在或访问被拒绝”1)SQL Server名称或IP地址拼写有误2)服务器端网络配置有误3)客户端网络配置有误2.“无法连接到服务器,用户xxx登陆失败”该错误产生的原因是由于SQL Server使用了“仅 Windows“的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接。
3.提示连接超时如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。
对于 SQL Server 数据库常见的一些错误,用户可以根据数据库出现的报错提示寻找相应的解决方案,这样才能保证数据库被连接上,从而保证数据库文件的安全。
如果用户无法在网络上找到相应的解决方法,或者那些方法尝试之后还是无法解决问题,用户可以将在线咨询数据恢复专家,或者将设备直接拿到该数据恢复中心,专业的数据库修复专家会帮助用户解决数据库出现的故障,帮助用户恢复数据库文件。
SQL Server数据库连接失败错误及解决方法
SQL Server数据库连接失败错误及解决方法在使用SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了。
一般而言,有以下两种连接SQL Server 的方式,一是利用SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用ODBC 或者OLE DB 等连接SQL Server。
下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题。
一、客户端工具连接失败在使用SQL Server 自带的客户端工具(以企业管理器为例)连接SQL Server时,最常见的错误有如下一些:1、SQL Server 不存在或访问被拒绝ConnectionOpen (Connect())2、用户'sa'登录失败。
原因:未与信任SQL Server 连接相关联。
3、超时已过期。
下面我们依次介绍如何来解决这三个最常见的连接错误。
第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。
一般说来,有以下几种可能性:1、SQL Server名称或IP地址拼写有误;2、服务器端网络配置有误;3、客户端网络配置有误。
要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。
首先,检查网络物理连接:ping <服务器IP地址>或者ping <服务器名称>如果ping <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。
还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如ISA Server。
防火墙软件可能会屏蔽对ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。
SQLServer附加数据库后出现只读或失败的解决方法
SQLServer附加数据库后出现只读或失败的解决⽅法解决此问题的⼏个关键点如下:1、该现象只会出现在NTFS⽂件系统中。
2、由NTFS⽂件系统的访问权限导致。
⼀般⼿⼯操作的解决⽅案如下:1、控制⾯板—>⽂件夹选项—>查看关闭“使⽤简单⽂件共享(推荐)”2、选择存放数据库⽂件的⽂件夹,右键选择属性,这时会多出⼀个“安全”选项卡,选择最后⼀个⽤户,将该⽤户的权限设为“完全控制”。
经过这两步操作后,数据库附加失败或附加后只读的问题即可解决。
下⾯重点讲这两步,⽤C#代码的实现,因为当我们为项⽬打包后,不可能让⽤户⼿⼯来执⾏这些操作1、C#关闭简单⽂件共享的代码实现在百度、Google搜索此问题解决⽅法时,很多的操作⽅法并不正确,经过⾃⼰实际操作测试,正确⽅法如下:注册表⽂件:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]"forceguest"=dword:00000000批处理:reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v forceguest /t REG_WORD /d 0x00000000 /f如果选中此项,则将上述 0x00000000 改为 0x00000001。
通过修改注册表的⽅式实现代码如下:Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine;Microsoft.Win32.RegistryKey software = key.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Lsa", true); software.SetValue("forceguest", 0);2、C#修改指定⽂件夹的⽤户访问权限代码实现如下:(将该⽤户的权限设置为可写)string path = this.Context.Parameters["targetdir"];//得到⽂件夹路径DirectoryInfo dInfo = new DirectoryInfo(path);DirectorySecurity dSecurity = dInfo.GetAccessControl();dSecurity.AddAccessRule(new FileSystemAccessRule(erName, FileSystemRights.CreateFiles, AccessControlType.Allow));dInfo.SetAccessControl(dSecurity);。
常见的SQL Server连接失败错误及解决
常见的SQL Server连接失败错误及解决在使用 SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了。
一般而言,有以下两种连接 SQL Server 的方式,一是利用 SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用 ODBC 或者 OLE DB 等连接 SQL Server。
下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题。
在使用 SQL Server 自带的客户端工具(以企业管理器为例)连接 SQL Server 时,最常见的错误有如下一些:1、SQL Server 不存在或访问被拒绝ConnectionOpen (Connect())2、用户'sa'登录失败。
原因:未与信任 SQL Server 连接相关联。
3、超时已过期。
下面我们依次介绍如何来解决这三个最常见的连接错误。
第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多。
一般说来,有以下几种可能性:1、SQL Server名称或IP地址拼写有误;2、服务器端网络配置有误;3、客户端网络配置有误。
要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。
首先,检查网络物理连接:ping <服务器IP地址>或者ping <服务器名称>如果 ping <服务器IP地址>失败,说明物理连接有问题,这时候要检查硬件设备,如网卡、HUB、路由器等。
还有一种可能是由于客户端和服务器之间安装有防火墙软件造成的,比如 ISA Server。
防火墙软件可能会屏蔽对 ping、telnet 等的响应,因此在检查连接问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。
如果ping <服务器IP地址>成功而 ping <服务器名称>失败,则说明名字解析有问题,这时候要检查 DNS 服务是否正常。
SQL SERVER 数据库附加失败-解决办法
Fly.Box企业网盘数据库安装常见问题2014/5/2Copyright © 2014 贵州友百利信息技术有限公司一、文件权限不够 (2)二、分别用Windows身份登录和Sql Server(sa)身份登录进行数据库附加尝试。
(5)三、如果数据库附加成功后显示如图所示“单个用户”或“Single User” (6)四、如果数据库附加成功后显示如图所示“只读”或“Read-Only” (8)SQL SERVER 数据库附加失败可以尝试以下几种方法:一、文件权限不够直接给Fly.Box.mdf和Fly.Box_log.ldf添加everyone 用户所有权限1.在Fly.Box.mdf点击右键->属性2.在弹出的属性窗口中选择“安全”,再点击“编辑”按钮。
3.在弹出的权限窗口中选择点击“添加”,在弹出的用户选择窗口中输入“everyone”,再点击“确定”按钮。
4.回到权限编辑窗口后,将“完全控制”中勾选“允许”,点击“确定”按钮。
5.再用同样的方法给“Fly.Box_log.ldf”添加“everyone”的“完全控制”权限。
二、分别用Windows身份登录和Sql Server(sa)身份登录进行数据库附加尝试。
三、如果数据库附加成功后显示如图所示“单个用户”或“Single User”在数据库上点击右键->属性在弹出的属性窗口中选择“选项”,修改限制访问为“MULTI_USER”,点击“确定”即可。
四、如果数据库附加成功后显示如图所示“只读”或“Read-Only”在数据库上点击右键->属性在弹出的属性窗口中选择“选项”,将“数据库为只读”修改为“False”,点击“确定”即可。
如果在点击确定时出现如图所示的错误提示:可能是文件“Fly.Box.mdf”或者“Fly.Box_log.ldf”为只读,只需要在这两个文件上点击右键,去掉这两个文件只读属性即可,再重复上一个步骤即可。
Sqlserver2005附加数据库时出错提示操作系统错误5
Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)的
解决办法
Sql Server2005附加数据库文件时弹出错误信息:如下图:
方案一:切换登录方式
出现这种情况是由于用“混合验证方式”(SQL Server身份验证)登录数据库造成的,只要将登录方式改为“windows身份验证方式”
登录即可解决该问题,附加成功后再换用“混合验证模式”登陆就没问题了。
方案二:修改服务
选择所有程序-SQL Server 2005-配置工具-选择"SQL Server Configuration Manager"或者“SQL Server 配置管理器”,打开“SQL Server Configuration Manager”配置界面,在左侧选择"SQL Server 2005 服务",在右侧右击打开“SQL Server (SQLEXPRESS)”的属性,在内置账户处将网络服务--”Network Service”改为本地系统--"Local System",点击“重新启动”后再附加数据库就OK了。
主要配置过程如下图:
1.打开“SQL Server Configuration Manager”配置界面
2.选择SqlServer(SQLEXPRESS),选项,并右击
3.选择“Local System”
4.选择“重新启动”
5.配置成功。
附加数据库失败
附上网上的解决方法:
经查阅资料,发现并不是文件只读的问题,严格说应该是一个“权限”的问题,当前的SQL Server登录帐号没有对要附加文件的可写权限,就会出现上述“只读”的提示,解决办法有以下几种:
1.将要附加的文件拷贝到 SQL Server 默认的 Data 目录,此时附加就会成功;
没办法,只能退一步,修改config中的连接字符串,改为windows身份验证,再用windows身份验证附加数据库了。
附加数据库失败,无法升级数据库,因为它是只读的
去网上搜索了一下答案,最终还是发现是NTFS的权限问题,NTFS格式对权限的设置选项多了很多,但因此也带来了不少问题,IIS,SQL等等的一些莫名其妙的问题可能就源于权限未分配,这次的问题同样出在此处。
解决方法很简单:把文件所在的文件夹的“完全控制”权限赋予 users或者你所操作数据库的那个用户即可解决问题。如果属性里面没有Users用户,手动添加一个即可。
2.在登录验证时,选择“Windows身份验证”,而不是“SQL Server身份验证”,即便你的登录帐号是sa;
3.如果一定要使用“SQL Server 身份验证”,请更改登录帐号的权限使其对要附加文件有完全操作权限;
4.将 SQL Server 服务的帐户登录身份由 Network Service 改为 Local Service;
数据库附加提示日志错误,总是附加不上的解决办法
数据库附加提示日志错误,总是附加不上的解决办法分类:sql 2010-09-14 19:42 35人阅读评论(0) 收藏举报备份数据文件,然后按下面的步骤处理:1.新建一个同名的数据库(数据文件与原来的要一致)2.再停掉sql server(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sql server5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES ',1 RECONFIGURE WITH OVERRIDE GOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME= '置疑的数据库名'Gosp_dboption '置疑的数据库名', 'single user ', 'true 'GoDBCC CHECKDB( '置疑的数据库名')Goupdate sysdatabases set status =28 where name= '置疑的数据库名'Gosp_configure 'allow updates ', 0 reconfigure with overrideGosp_dboption '置疑的数据库名', 'single user ', 'false 'Go6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,我用上面的方法后,数据库可以正常使用了,当在导入数据的时候提示回避恢复模式什么的,导入总是不成功数据库的脚本创建一个新的数据库,并将数据导进去就行了.最后就是新建库把问题数据库的记录导入到新库中,在给新数据库导入新数据,成功奥!!一下是同时收集到的资料,哈哈,多看看,也有好处嘛!只有mdf文件的恢复技术由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。
sa无法附加数据库
sql server 2005附加数据库错误:尝试打开或创建物理文件
无法打开物理文件"E:\works\database\northwnd\northwnd.mdf"。
操作系统错误5:"5(拒绝访问。
)"。
(Microsoft SQL Server,错误: 5120)
1 所有有程序-SQL Server 2005-配置工具-"SQL Server Configuration Manager",点击"SQL Server 2005 服务",右边会显示出用户,右击你的用户(如sa)属性,内置帐户选择"Local System",点击重新启动就OK了
2 附加后发现数据库属性为只读解决方法为:
1、打开开始→程序→Microsoft SQL Server 2005→配置工具→SQL Server 配置管理器, 打开SQL Server SQLEXPRESS 的属性.在内置帐号处,把“网络服务”改成“本地系统”,重新启动SQL Server 2005 Express 后,再附加数据库一切正常。
2、打开SqlServer 2005 ,在只读的数据库上右击选择属性,选中属性窗口左边"选择页"下面的"选项",在窗口右边将“数据库为只读”改为false ,点击确定即可。
总结:之所以附加上的数据库为“只读”,是因为启动SQL Server 的默认的启动帐号“网络服务”对所附加(Attach)的数据库文件的权限不够造成的。
SQLServer数据库附加失败的解决办法
SQLServer数据库附加失败的解决办法
本⽂为⼤家分享了SQL Server数据库附加失败的具体解决⽅法,供⼤家参考,具体内容如下
1、错误3415
问题:附加数据库的时候,发现总是附加失败,查看消息时发现问题如下:
查看消息后发现错误代码为3415 原因:数据库⽂件是只读的解决⽅法:在⽂件属性中去掉只读属性
2、错误5120
问题:解决完错误3415后,附加数据库还是出现错误,查看消息时发现问题如下:
查看消息后发现错误代码为5120 解决⽅法1(尝试):把数据库登陆⽅式改为Windows⾝份认证,然后再试⼀下;解决⽅法2:查看⼀下数据库⽂件的属性->安全标签,发现
此处应该添加⼀个Everyone的⽤户组
然后赋予完全控制的权限
再次附加就可以成功。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解决此问题的几个关键点如下:
1、该现象只会出现在NTFS文件系统中。
2、由NTFS文件系统的访问权限导致。
一般手工操作的解决方案如下:
1、控制面板—>文件夹选项—>查看关闭“使用简单文件共享(推荐)”
2、选择存放数据库文件的文件夹,右键选择属性,这时会多出一个“安全”选项卡,选择最后一个用户,将该用户的权限设为“完全控制”。
经过这两步操作后,数据库附加失败或附加后只读的问题即可解决。
下面重点讲这两步,用C#代码的实现,因为当我们为项目打包后,不可能让用户手工来执行这些操作
1、C#关闭简单文件共享的代码实现
在百度、Google搜索此问题解决方法时,很多的操作方法并不正确,经过自己实际操作测试,正确方法如下:
注册表文件:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "forceguest"=dword:00000000
批处理:
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v forceguest /t REG_WORD /d 0x00000000 /f
如果选中此项,则将上述 0x00000000 改为 0x00000001。
通过修改注册表的方式实现代码如下:
Microsoft.Win32.RegistryKey key =
Microsoft.Win32.Registry.LocalMachine;
Microsoft.Win32.RegistryKey software =
key.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Lsa", true); software.SetValue("forceguest", 0);
2、C#修改指定文件夹的用户访问权限代码实现如下:(将该用户的权限设置为可写)
string path = this.Context.Parameters["targetdir"];//得到文件夹路径DirectoryInfo dInfo = new DirectoryInfo(path);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(erName, FileSystemRights.CreateFiles, AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);。