好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > SQL Server數據庫錯誤5123解決方案

SQL Server數據庫錯誤5123解決方案

熱門標簽:機器人打電銷電話 南寧外呼系統招商 鄭州網絡外呼系統價錢 400電話到哪辦理優惠 上海市三維地圖標注 電話機器人是電腦呼號嗎 博樂電銷機器人 怎么更改高德地圖標注 云南大數據外呼系統

因為自己有一本基于SQL Server 2005的數據庫教程,里邊使用的示例數據庫是AdventureWorks for SQL Server 2005,而我的機子上裝的是SQL Server 2008,示例數據庫是AdventureWorks for SQL Server 2008。起初我以為示例數據庫AdventureWorks for SQL Server 2005 與AdventureWorks for SQL Server 2008 數據庫結構應該差不多,可是在練習的過程中,我發現兩個數據庫中很多表的結構還是有很多不一樣的地方。

于是決定到微軟下載中心將示例數據庫AdventureWorks for SQL Server 2005下過來,附加到SQL Server 2008上,以便順利進行練習。

我以SQL Server 2008的超級管理員賬戶“sa”連接登錄到實例SQLSERVER2008:

在附加示例數據庫AdventureWorks for SQL Server 2005時,彈出了下圖這個錯誤:

仔細看了一下主要信息“嘗試打開或創建物理文件......時,CREATE FILE遇到操作系統錯誤 5(拒絕訪問。)”,一看就知道應當是對要附加的數據文件的操作權限不夠。 按一般的思維習慣,我們會對操作權限不夠的文件授予足夠的操作權限。比如,有網友說“給要附加的數據文件和相應的日志文件授予Everyone的權限”,授權過程如下三張截圖所示(注意數據文件和日志文件都必須授權):

(圖1:授權數據文件)

(圖2:數據文件授權后)

(圖3:日志文件授權后)

對要附加的數據文件和日志文件分別授予Everyone【讀取和執行】、【讀取】的權限后,在SQL Server 2008中重新嘗試附加數據庫,發現可以附加成功了!是不是問題就這樣解決了呢?這樣子做對嗎? 如果在真實的數據庫管理過程中,我們把數據文件、日志文件的權限放大到Everyone,那肯定是不對的做法。

因為這樣數據庫的安全性將大打折扣,雖然對Everyone只授予了【讀取和執行】、【讀取】的權限,但這仍然有泄漏數據的危險。 我們應當保證能正常訪問的情況下,使數據文件具有最小的訪問權。我們之前授權給Everyone,那所有用戶或賬戶都能操作相應的文件了,這肯定不安全的。

那么如何才能授予最小的訪問權限呢?思考一下,我們用SQL Server 2008去附加相應的數據文件,報出“拒絕訪問”即權限不夠的錯誤,換句話說,當前SQL Server 2008沒有權限訪問這些文件。我們右鍵文件,到文件屬性中查看一下文件的權限情況,如下圖所示:

 

(相應數據文件原本的權限情況)

我們發現只有SYSTEM和xrm這兩個組或用戶才有權操作此數據文件。SYSTEM是一個用戶組,即【本地系統】組,而xrm是一個管理員用戶,如圖示:

(xrm用戶的信息)

SYSTEM用戶組和xrm這個管理員用戶都有權限操作此數據文件和日志文件,而以SQL Server2008的超級管理員SA連接登錄實例后,SQL Server卻沒有權限訪問此數據文件。換句話說,以SQL Server2008的超級管理員SA連接登錄實例后,登錄的身份不在SYSTEM用戶組,也不是xrm這個管理員。

那會是什么呢? 我們查看一下當前SQL Server 2008的實例服務的相關信息就知道了,打開Sql ServerConfiguration Manager (即SQL Server 配置管理器)查看一下當前連接到的實例服務的相關信息,如下圖所示:

(當前實例服務的相關信息)

發現當前實例SQLSERVER2008的登錄身份為“NT AUTHORITY\LocalService”,即操作系統授權的【本地服務】,本地服務也是了個用戶組。換句話說,如果我們僅授予【本地服務】這個用戶組的權限(而不是Everyone),應該也可以在SQL Server 2008中用sa的賬戶附加數據庫了。

為此,將剛剛授予相應數據文件和日志文件Everyone的權限都刪除,再授予LocalService用戶組相應數據文件和日志文件的權限,重新嘗試附加相應的數據庫,發現的確可以附加成功!不必說,授予操作系統授權的【本地服務】用戶組比起授予Everyone來說肯定要安全的多。

上面提到的方法中,我們都是改變了數據文件原來的權限范圍(原來的權限范圍只有SYSTEM即【本地系統】用戶組和xrm這個系統管理員)。

而更好的辦法是不要改變數據文件的權限范圍,仍然以SA身份連接登錄SQL Server 2008的實例也能訪問相應的數據文件。

而要達到這個目的,我們只需要將相應實例的登錄身份改為SYSTEM【本地系統】用戶組,SYSTEM也是在相應數據文件的權限范圍之內的用戶組,而且SQL Server實例以本地系統身份運行,安全性將更高。我們可以在SQL Server 配置管理器中將相應的SQL Server實例的登錄身份修改為【本地系統】即Local System,如下列圖所示:

 

(修改實例的登錄身份)

(實例的登錄身份變為LocalSystem)

然后重啟相應實例服務,重新以SA身份連接登錄SQL Server 2008的相應實例并嘗試附加數據庫,同樣可以成功的將數據庫附加上!!!


其實,如果不是要特別地以SA身份連接登錄SQL Server 2008的相應實例來附加相應數據庫,那么在連接登錄SQL Server 2008的相應實例時,身份驗證選擇【Windows 身份驗證】,不做前文中所述的其他修改就可以把數據庫附加上去了,原因就在于:【Windows 身份驗證】用的是當前操作系統的用戶的權限,權限一般都足夠大的。另外,在【SQL Server 配置管理器】中針對實例服務可以做的操作,在Windows的【服務】上也可以做到。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 圖書管理系統的sqlserver數據庫設計示例
  • sql server數據庫中raiserror函數用法的詳細介紹
  • SqlServer數據庫中文亂碼問題解決方法
  • SQL Server免費版的安裝以及使用SQL Server Management Studio(SSMS)連接數據庫的圖文方法
  • SQL Server 2000/2005/2008刪除或壓縮數據庫日志的方法
  • SQL Server數據庫中的表名稱、字段比較
  • SQLServer數據庫處于恢復掛起狀態的解決辦法
  • Servermanager啟動連接數據庫錯誤如何解決

標簽:澳門 益陽 白銀 秦皇島 寧夏 定西 恩施 杭州

巨人網絡通訊聲明:本文標題《SQL Server數據庫錯誤5123解決方案》,本文關鍵詞  SQL,Server,數據庫,錯誤,5123,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQL Server數據庫錯誤5123解決方案》相關的同類信息!
  • 本頁收集關于SQL Server數據庫錯誤5123解決方案的相關信息資訊供網民參考!
  • 推薦文章