程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> sql2008 附加數據庫時出現錯誤5123提示的解決方法

sql2008 附加數據庫時出現錯誤5123提示的解決方法

編輯:關於SqlServer
錯誤載圖

解決方法:


1.直接把己有數據庫復制到sql安裝目錄下C:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA

這樣就可以附加,不知道是不是在裝數據庫時漏選了什麼操作,以前沒遇到過。

2.在己有數據庫mdf和ldf文件上,

右鍵---->屬性---->添加---->高級---->立即查找---->Authenticated Users---->確定

------>完全控制勾上---->確定

以上兩種方法都可以,可能還有其它方法,各位同學自己再找找吧。。。。

前天重做了系統,重裝了SQLServer2012Express,今天附加一個原來的數據庫時就報錯了,提示信息為:無法為此請求檢索數據……執行Transact-SQL語句或批處理時發生異常……嘗試打開或創建物理文件'd:\data\ejiaOA.mdf'時,createfile遇到系統錯誤 5(拒絕訪問)。(Microsoft SQL Server,錯誤:5123)

看到這個破提示,第一感覺就是文件夾的權限看來是沒有給到位(我的系統是64全Win7),用古老的辦法:“ 文件—>屬性—>安全—>添加—>高級—>立即查找—>EveryOne—>確定—>確定—>完全控制—>應用”就是給這個文件夾加了權限,再一操作,還是不行!!頓時郁悶了,我了個去啊,什麼情況?百度了半天,找了一些解決辦法,都是這種更改權限的不好用的辦法,其中有一位網友說了:Win7是個很神奇的東東,有時間文件夾的操作權限不會被裡面的文件所繼承,所以需要檢查文件本身的權限是不是也符合操作的要求。我按這哥們說的做了,發現我的WIN7顯然沒有這個特征,文件的權限和它老爸文件夾的權限是一致的。



問題的原因始終找不到,著實讓我頭疼了半天,不過對於咱這種有著堅韌的性格的人來講,咱一點兒也沒有被嚇到,繼續百度百度百度……最後,我快要絕望的時候,找到一篇文章,截圖如下:

 

 這個文件給描述的問題和我的是一模一樣,不過提出的解決辦法也是和我的操作辦法一致,後面有評論,咱也截圖了

 

 看來,倒霉的不是我一個啊,不過我還是發現一個問題,那就是使用了Windows身份驗證,如果不使用Windows身份驗證會是怎麼樣一個情況呢?退出SQL2012管理器,用SA重新登陸了一下,然後再執行這個附加操作,居然一下就成功了!

問題終於解決了,但是我也納悶了,這是為什麼呢?經檢查,我的數據庫文件原來的權限是這樣的:

  

我有理由相信,這個是一個數據庫文件的正常權限,加了everyone的所有權限控制那才不正常呢。同時MSSQL$SQLEXPRESS是留給SA登陸的SQLServer管理使用的權限,我是用超管的帳戶登陸的系統,顯然是屬於超管用戶組的,但是為什麼附加數據庫會出錯呢?有知道的朋友麻煩告訴我一下吧,不勝感激!!!

百度上有網友這樣解釋:這是因為SQL Server的啟動帳戶(一般是system或某個操作系統管理員),對E(我的是D盤)盤根目錄沒有創建文件的權限。右擊E盤,在屬性裡查看“安全”選項卡裡查看用戶的權限。查看啟動帳戶是誰,運行services.msc,在服務管理器裡找到SQL Server服務,然後看“登錄”選項卡,選中本地用戶並重啟服務。 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved