SQL Server 附加数据库时 出现错误 “无法为请求检索数据,Error:5123 ” 的解决办法
web SQLServer 2018-02-09 8496 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

7441708 2655 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)
问题:
安装SQL Server 2008 后附加数据库则出现错误 "无法为请求检索数据,Error:5123"。  

解决方法:
对错误信息分析,是文件权限造成的。
1 更改数据库文件所有者
打开数据库文件夹,右键点击数据库文件,选择“属性Property” =>“安全Security”,点击“高级Advanced”按钮。
新出现的窗口中,删除文件所有者信息不明的用户或组,选中“允许父项的继承权限传播到该对象和所有子对象。包括那些在此明确定义的项目(A)。”。
点击“应用(A)”。
 点击“编辑Edit”, 点击“更改Change”按钮。
出现选择“用户与组”窗口,点击“高级Advanced”按钮。
新窗口中,点击“现在查找 Find Now”按钮,选择“用户组Users”。  
然后一路ok,结束。

2 修改数据库文件所有者权限
再重新右键点击数据库文件,选择“属性Property”=>“安全Security”,
打开的窗口中会看到所有者权限为空。点击“编辑Edit”按钮,
选中“所有者权限”,勾选“完全控制”,然后点击“ok”按钮。
一路ok,结束。

再进行数据库附加,一路顺畅。 

=======================================

进行完步骤1之后,可以附加数据库了,但是点击确定的时候,还是有错误“附加数据库失败,无法升级数据库,因为它是只读的”

由于步骤2不是特别懂,所以从网上搜索后,就把数据库的这2个文件所在的目录,添加了everyone用户,并赋予完全控制权限,然后再附加数据库,就成功了。

=======================================

以下内容复制网上的另一篇文章

去网上搜索了一下答案,最终还是发现是NTFS的权限问题,NTFS格式对权限的设置选项多了很多,但因此也带来了不少问题,IIS,SQL等等的一些莫名其妙的问题可能就源于权限未分配,这次的问题同样出在此处。

解决方法很简单:把文件所在的文件夹的“完全控制”权限赋予 users或者你所操作数据库的那个用户即可解决问题。如果属性里面没有Users用户,手动添加一个即可。

 

附上网上的解决方法:

经查阅资料,发现并不是文件只读的问题,严格说应该是一个“权限”的问题,当前的SQL Server登录帐号没有对要附加文件的可写权限,就会出现上述“只读”的提示,解决办法有以下几种:
1.将要附加的文件拷贝到 SQL Server 默认的 Data 目录,此时附加就会成功;
2.在登录验证时,选择“Windows身份验证”,而不是“SQL Server身份验证”,即便你的登录帐号是sa;
3.如果一定要使用“SQL Server 身份验证”,请更改登录帐号的权限使其对要附加文件有完全操作权限;
4.将 SQL Server 服务的帐户登录身份由 Network Service 改为 Local Service;
没办法,只能退一步,修改config中的连接字符串,改为windows身份验证,再用windows身份验证附加数据库了。

今天在将一个 SQL Server 2000 数据库附加到 SQL Server 2005时出现如下的错误:附加数据库对于服务器失败(Microsoft.SqlServer.Smo),无法升级数据库test,因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)

查看了数据库文件,他们并没有只读属性,在 SQL Server 2000 中附加都是一切正常的啊。
经查阅资料,发现并不是文件只读的问题,严格说应该是一个“权限”的问题,当前的SQL Server登录帐号没有对要附加文件的可写权限,就会出现上述“只读”的提示,解决办法有以下几种:
1.将要附加的文件拷贝到 SQL Server 默认的 Data 目录,此时附加就会成功; 
2.在登录验证时,选择“Windows身份验证”,而不是“SQL Server身份验证”,即便你的登录帐号是sa; 
3.如果一定要使用“SQL Server 身份验证”,请更改登录帐号的权限使其对要附加文件有完全操作权限; 
4.将 SQL Server 服务的帐户登录身份由 Network Service 改为 Local Service; 

我遇到了这种情况,使用第二种方法解决了问题。

版权声明:本篇文章来源于网络。 来源链接

相关推荐
SQL Server数据库所有表中查询某个值
SQLServer | 2018-11-15 7870
原标题:查找sqlserver数据库中,查询某值所在表名和字段名 有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,通过一个存储过程实现的。只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。 前提是要将这个存储过程放在所查询的数据库。 CREATE PROCEDURE [dbo].[SP_FindVa...
SQL Server 2008 r2评估期已过。有关如何升级的测试版软件的信息
SQLServer | 2017-10-16 5852
当打开sql server2008企业管理器的时候,出现报错“评估期已过。有关如何升级的测试版软件的信息.....” 解决办法: 1,打开注册表:开始>运行>regedit, 修改注册表:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Ser...
评论:0条
评论加载中...
发表评论