原因是对想要附加的数据库文件(mdf)和日志文件(ldf) 没有 *** 作权限 解决办法 很简单 第一步:找到数据库文件(mdf)和日志文件(ldf)
第二步:右键 选择 “属性” ,然后选择“安全”选项卡,然户选择“编辑
第三步:选择“添加”
第四步:选择“高级”
第五步:选择“立即查找”,在下面的搜索结果中 找到“Everyone”,选定,确定
第六步:把“Everyone”的权限 设置为“完全控制”,应用
第七步:确定
先把原库文件备份一份,然后
在其它机器上直接附加数据库,不要日志文件!试试!如果不行再按以下方法试试!
在其他机器上,用这个试试:
1设置数据库为紧急模式
Use Master
GO
sp_configure 'allow updates', 1
reconfigure with override
GO
UPDATE sysdatabases SET status = 32768 where name = 'DB_SUSPECT'
GO
2停掉SQL Server服务:
NET STOP MSSQLSERVER
3把原始数据库的数据文件DBNAME_DATMDF,DBNAME_LOGLDF移走:
4启动SQL Server服务:
NET START MSSQLSERVER
5重新建立一个同名的数据库DB_SUSPECT;
USE master
GO
CREATE DATABASE DB_SUSPECT
ON
( NAME = DBNAME_DAT,
FILENAME = 'C:',
SIZE = 10,
FILEGROWTH = 5 )
LOG ON
( NAME = 'DBNAME_LOG',
FILENAME = 'g:',
SIZE = 5MB,
FILEGROWTH = 5MB )
GO
6设置数据库运行在单用户的模式:
USE MASTER
GO
ALTER DATABASE DB_SUSPECT SET SINGLE_USER
GO
7停掉SQL服务:
NET STOP MSSQLSERVER
8把原来的数据文件再覆盖回来:
9启动SQL Server服务:
NET START MSSQLSERVER
10重新设置SQLSERVER的状态:
USE MASTER
GO
EXEC sp_resetstatus "DB_SUSPECT"
11数据库完整性检测:
DBCC CHECKDB('DB_SUSPECT')
12恢复数据库为多用户模式:
USE MASTER
GO
ALTER DATABASE DB_SUSPECT SET MULTI_USER
GO
13恢复SQLSERVER原始的配置:
USE MATER
GO
UPDATE sysdatabases SET status = 4194320 where name = 'DB_SUSPECT'
GO
14配置SQLSERVER不允许更新系统表:
USE MASTER
GO
sp_configure 'allow updates', 0
reconfigure with override
GO
15重新启动MSSQLSERVER服务:
最好重新启动 *** 作系统
16备份数据库:
可以通过SQLSERVER企业管理器或T-SQL需要备份MASTER和DB_SUSPECT
楼主好,首先,数据库只支持向下兼容的,也就是低版本的数据库可以附加还原到高版本的数据库上,但是反之则不行。剩下的就是windows权限问题了,修改方式很简单,我之前也附加不进去,事实上数据库附加,window系统中有个权限控制的,要改你要附加的数据库文件还有数据库日志文件的权限。具体做法是:
首先右键单击你的MDF文件,然后进入属性界面;
在安全选项卡中,你会看到如下图的提示,上面有个完全控制,附加不上去的数据库,完全控制是没有打勾的。然后选中你登录数据库使用windows验证的那个用户名,点击编辑,将完全控制选项勾上,然后应用,确定。就行了。我之前因为学习多维数据库的时候下载了一个源库,结果不能附加,这样弄一下就好了。
sqlserver附加数据库错误823的解决方案2008-10-13 15:06sqlserver附加数据库错误823的解决方案一、SQL-Server附加数据库时失败。
1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。
2、异常分析:关于823错误的 SQL-SERVER 中的帮助:
================================
错误 823
严重级别 24
消息正文
在文件 "%4!" 的偏移量 %3! 处的 %2! 过程中,检测到 I/O 错误 %1!。
解释
Microsoft SQL Server 在对某设备进行读或写请求时遇到 I/O 错误。该错误通常表明磁盘问题。但是,错误日志中在错误 823 之前记录的其它核心消息应指出涉及了哪个设备。
3、解决办法:
在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,把损坏的数据库文件Datamdf和Test_logLDF覆盖刚才新建数据库目录下的Datamdf和Test_logLDF,同时删除Test_logLDF文件;启动数据库服务,发现数据库名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_LogLDF') / 重建LDF文件 /
第四、
update sysdatabases set status=0 where name='数据库名' / 重置数据库状态 /
第五、
restore database 数据库名 WITH RECOVERY / 恢复数据库 /
第六、
exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE / 关闭打开修改系统表的开关 /
按照此方法 *** 作,应该能修复数据库正常访问了。如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库(Test)各个表的数据导出到新建数据库表中。
============================================================
补充说明:用上面的六步把数据库置疑的问题解决了,但是数据库表里还有损坏的表(inf_gdscode),把坏表导出的时候也不成功。最后在查询分析器里运行:
USE nmgbt_hcxuexipos (数据库名)
GO
DBCC CHECKTABLE ('inf_gdscode',REPAIR_ALLOW_DATA_LOSS)
GO
这个原因是 *** 作系统拒绝访问错误(没有权限)两种方法1 你把需要附加的数据库 复制到你sql 安装所在磁盘的目录下就可以访问了(就是在点击附加数据库时默认打开的目录)一般是 Microsoft SQL Server\MSSQL1\MSSQL\Data 目录下2数据库要附加的数据库所在的磁盘 右键--》属性--》安全--》》添加一个名为 Everyone 的账户就行了
我之前也附加不进去,事实上数据库附加,window系统中有个权限控制的,要改你要附加的数据库文件还有数据库日志文件的权限。具体做法是:
首先右键单击你的MDF文件,然后进入属性界面;
在安全选项卡中,你会看到如下图的提示,上面有个完全控制,附加不上去的数据库,完全控制是没有打勾的。然后选中你登录数据库使用windows验证的那个用户名,点击编辑,将完全控制选项勾上,然后应用,确定。就行了。我之前因为学习多维数据库的时候下载了一个源库,结果不能附加,这样弄一下就好了。另外提醒楼主,你要是在远程服务器上附加数据库的话,一定是移动到远程上,用远程的windows验证的那个登录名获取完全控制,否则你移动过去后还是不能附加的。
以上就是关于sql2000附加数据库报错5123全部的内容,包括:sql2000附加数据库报错5123、sql server附加数据库时出现错误提示:错误:9004 处理数据库的日志时出错、在SQL Sever2014中,附加数据库出现如下错误大神求解释,该怎么处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)