位置: 编程技术 - 正文
前天重做了系统,重装了SQLServerExpress,今天附加一个原来的数据库时就报错了,提示信息为:无法为此请求检索数据……执行Transact-SQL语句或批处理时发生异常……尝试打开或创建物理文件'd:dataejiaOA.mdf'时,createfile遇到系统错误 5(拒绝访问)。(Microsoft SQL Server,错误:)。
看到这个破提示,第一感觉就是文件夹的权限看来是没有给到位(我的系统是全Win7),用古老的办法:“ 文件—>属性—>安全—>添加—>高级—>立即查找—>EveryOne—>确定—>确定—>完全控制—>应用”就是给这个文件夹加了权限,再一操作,还是不行!!顿时郁闷了,我了个去啊,什么情况?百度了半天,找了一些解决办法,都是这种更改权限的不好用的办法,其中有一位网友说了:Win7是个很神奇的东东,有时间文件夹的操作权限不会被里面的文件所继承,所以需要检查文件本身的权限是不是也符合操作的要求。我按这哥们说的做了,发现我的WIN7显然没有这个特征,文件的权限和它老爸文件夹的权限是一致的。
问题的原因始终找不到,着实让我头疼了半天,不过对于咱这种有着坚韧的性格的人来讲,咱一点儿也没有被吓到,继续百度百度百度……最后,我快要绝望的时候,找到一篇文章,截图如下:
这个文件给描述的问题和我的是一模一样,不过提出的解决办法也是和我的操作办法一致,后面有评论,咱也截图了
看来,倒霉的不是我一个啊,不过我还是发现一个问题,那就是使用了Windows身份验证,如果不使用Windows身份验证会是怎么样一个情况呢?退出SQL管理器,用SA重新登陆了一下,然后再执行这个附加操作,居然一下就成功了!
问题终于解决了,但是我也纳闷了,这是为什么呢?经检查,我的数据库文件原来的权限是这样的:
我有理由相信,这个是一个数据库文件的正常权限,加了everyone的所有权限控制那才不正常呢。同时MSSQL$SQLEXPRESS是留给SA登陆的SQLServer管理使用的权限,我是用超管的帐户登陆的系统,显然是属于超管用户组的,但是为什么附加数据库会出错呢?有知道的朋友麻烦告诉我一下吧,不胜感激!!!
百度上有网友这样解释:这是因为SQL Server的启动帐户(一般是system或某个操作系统管理员),对E(我的是D盘)盘根目录没有创建文件的权限。右击E盘,在属性里查看“安全”选项卡里查看用户的权限。查看启动帐户是谁,运行services.msc,在服务管理器里找到SQL Server服务,然后看“登录”选项卡,选中本地用户并重启服务。
推荐整理分享sql2008 附加数据库时出现错误5123提示的解决方法(sql2008附加数据库错误3456),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:sql2008附加数据库错误5123,sql2008附加数据库提示只读,sql2008附加数据库出错5120,sql2008附加数据库拒绝访问,sql2008附加数据库,sql2008附加数据库提示只读,sql2008附加数据库错误5123,sql2008附加数据库,内容如对您有帮助,希望把文章链接给更多的朋友!
sqlserver使用row_number() over分页的实现方法 语法:ROW_NUMBER()OVER(PARTITIONBYCOLUMNORDERBYCOLUMN)BR例子:select*from(select*,ROW_NUMBER()OVER(Orderbya.CreateTimeDESC)ASRowNumberfromtable_nameasa)asbwhereRowNumberBETWEEN1and5将会返回tab
SQLServer 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法 execsp_attach_dbexun,'d:exun2.mdf'一句话就可以了。网上看了那些比较繁琐的,都是sqlserver版本的。(可能执行一次不能成功,测试了下,有时候需要执行2
sqlserver巧用row_number和partition by分组取top数据 分组取TOP数据是T-SQL中的常用查询,如学生信息管理系统中取出每个学科前3名的学生。这种查询在SQLServer之前,写起来很繁琐,需要用到临时表关联
上一篇:使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法(使用sqlserver创建数据库和删除数据库的实验总结)
下一篇:sqlserver2005使用row_number() over分页的实现方法(sql server 2005如何使用)
友情链接: 武汉网站建设