錯誤載圖
解決方法:
1.直接把己有資料庫複製到sql安裝目錄下C:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA ,不知道是不是裝資料庫時漏選了什麼操作,以前沒遇過。
2.在己有資料庫mdf和ldf檔案上,
右鍵---->屬性---->新增---->進階---->立即尋找---->Authenticated Users- --->確定
------>完全控制勾上---->確定
以上兩種方法都可以,可能還有其它方法,各位同學自己再找找吧。 。 。 。
前天重做了系統,重裝了SQLServer2012Express,今天附加一個原來的資料庫時就報錯了,提示資訊為:無法為此請求檢索資料…執行Transact-SQL語句或批次時發生異常… …嘗試開啟或建立實體檔案'd:dataejiaOA.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服務,然後看「登入」選項卡,選取本機使用者並重新啟動服務。
更多sql2008 附加資料庫時出現錯誤5123提示的解決方法相關文章請關注PHP中文網!