Microsoft Dynamics NAV 2013 R2 導入議題 (1) Dynamics NAV 資料庫備份與還原至客戶環境

  • 2157
  • 0
  • 2014-03-14

作為 Microsoft Dynamics NAV 顧問廠商,會將客製好的資料庫(例如會計科目、名詞修改、中文化、客製程式等)備份並且還原到客戶環境中,接著修改 NAV Server Instance 資料庫參數,讓 Microsoft Dynamics NAV Windows Client 和 Web Client 可以正常使用。在過程中您可能會遇到一些狀況,例如開啟 Microsoft Dynamics NAV Windows Client 時出現錯誤訊息 [You do not have access to Microsoft Dynamics NAV. Verify that you have been set up as a valid user in Microsoft Dynamics NAV.],本文針對 Dynamics NAV 資料庫備份與還原至客戶環境進行說明。

 

前言

作為 Microsoft Dynamics NAV 顧問廠商,會將客製好的資料庫(例如會計科目、名詞修改、中文化、客製程式等)備份並且還原到客戶環境中,接著修改 NAV Server Instance 資料庫參數,讓 Microsoft Dynamics NAV Windows Client 和 Web Client 可以正常使用。在過程中您可能會遇到一些狀況,例如開啟 Microsoft Dynamics NAV Windows Client 時出現錯誤訊息 [You do not have access to Microsoft Dynamics NAV. Verify that you have been set up as a valid user in Microsoft Dynamics NAV.],本文針對 Dynamics NAV 資料庫備份與還原至客戶環境進行說明。

 

備份 Dynamics NAV 資料庫

執行 [SQL Server Management Studio] 並且連結到伺服器,在 [資料庫] 中,選擇 NAV 資料庫,按滑鼠右鍵,選擇 [工作] / [備份]。

01

 

在 [來源] 分類中 [備份類型] 選擇 [完整] 選項,在 [目的地] 分類中按 [加入] 按鈕。

image

 

選擇 1 瀏覽按鈕,指定檔案名稱和路徑。

image

 

[檔案類型] 選擇 [備份檔案 (*.bak; *.trn)],選擇路徑和輸入檔案名稱後,按 [確定] 按鈕。

image

 

按 [確定] 按鈕。

image

 

按 [確定] 按鈕。

image

 

備份完成,按 [確定] 按鈕。

image

 

取得 *.bak 檔案。

image

 

還原資料庫至客戶環境

在客戶環境中,先安裝 SQL Server 和 Microsoft Dynamics NAV 2013 R2,執行 [SQL Server Management Studio] 並且連結到伺服器,在 [資料庫] 按滑鼠右鍵,選擇 [還原資料庫]。

image

 

在 [來源] 分類中選勾選 [裝置],按 1 瀏覽按鈕。

image

 

按 [加入] 按鈕。

image

 

選擇先前備份的 *.bak 檔案,按 [確定] 按鈕。

image

 

按 [確定] 按鈕。

image

 

載入 *.bak 後的畫面。

image

 

在畫面左邊選擇 [檔案] 頁面,您可以指定資料庫檔案放置的位置。

image

 

按 [確定] 按鈕進行還原資料庫。

image

 

資料庫還原成功,按 [確定] 按鈕。

image

 

修改 NAV Server Instance 參數

將 Dynamics NAV 資料庫備份與還原到客戶環境後,接著修改 NAV Server Instance 參數,使 NAV Server Instance 連接的資料庫指定為新增的資料庫。開啟 [Microsoft Dynamics NAV 2013 R2 Administration]。

image

 

選擇 NAV Server Instance,按 [Edit] 按鈕。

image

 

修改 [Database Name] 為新增的 NAV 資料庫,按 [Save] 按鈕儲存設定。

image

 

此時出現如下圖之訊息,訊息中說明您必須將 NAV Server Instance 停止並重新執行設定才會生效,按 [OK] 按鈕。

image

 

在 NAV Server Instance 上,按滑鼠右鍵,選擇 [Stop] 停止 NAV Server Instance。

image

 

選擇 [OK] 按鈕停止 NAV Server Instance。

image

 

在 NAV Server Instance 上,按滑鼠右鍵,選擇 [Start] 開始運行 NAV Server Instance。

image

 

按 [OK] 按鈕開始運行 NAV Server Instance。

image

 

確認 NAV Server Instance 狀態是 Running。

image

 

根據以上步驟後,可嘗試執行 Microsoft Dynamics NAV Windows Client 或 Web Client 看是否能正確運行。

 

問題處理

執行 Microsoft Dynamics NAV Windows Client,出現如下圖所示錯誤訊息 [You do not have access to Microsoft Dynamics NAV. Verify that you have been set up as a valid user in Microsoft Dynamics NAV.]。

image

 

從錯誤訊息中,可以得知由於使用者沒有權限,因此無法連接至 Microsoft Dynamics NAV,透過 [Microsoft Dynamics NAV 2013 R2 Administration Shell] 和相關指令,新增使用者到 Microsoft Dynamics NAV 中;如果無法新增使用者時,請將 NAV 資料庫使用者相關資料表清除資料後,再新增使用者並且使用 Windows Client 進行登入。
首先,我們先取得目前登入使用者的 SID,開啟 PowerShell,輸入 Get-WmiObject -Class Win32_UserAccount 按 Enter 鍵,目前登入的使用者為 Administrator,其 SID 如下圖所示。

image

 

以系統管理員身分執行 [Microsoft Dynamics NAV 2013 R2 Administration Shell],輸入 New-NAVServerUser DynamicsNAV71 -SID S-1-5-21-1402237680-1145827797-1758274542-500 按 Enter 鍵,其中 DynamicsNAV71 是 NAV Server Instance 的名稱,S-1-5-21-1402237680-1145827797-1758274542-500 是先前取得的使用者 SID。

image

 

輸入 Get-NAVServerUser DynamicsNAV71 按 Enter 鍵,其中 DynamicsNAV71 是 NAV Server Instance 的名稱,可以得知目前 Microsoft Dynamics NAV 使用者清單,請檢查清單是否已經包含目前登入的使用者帳號。

image

 

執行 Microsoft Dynamics NAV 2013 R2,錯誤訊息如下圖所示變成 [There is no company in the database. Contact your system administrator.]。

image

 

透過 New-NAVServerUser 新增使用者,實際上是寫到 [dbo].[User]、[dbo].[User Property] 等 User 資料表中,該錯誤主要是因為我們沒有賦予使用者登入公司的權限,這部分可以在 [dbo].[Access Control] 資料表新增資料。
開啟 [SQL Server Management Studio] 並且連結到伺服器,在 NAV 資料庫上展開資料表,選擇 [dbo].[Access Control] 進行編輯。

image

 

新增一筆資料,其中 [User Security ID] 請輸入 User Security ID,此資訊可從 [dbo].[User] 資料表,或是透過 Get-NAVServerUser 指令取得您燈入使用者的 User Security ID,[Role Id] 輸入 SUPER,[Company Name] 輸入公司名稱。

image

修改完成後儲存並關閉 [SQL Server Management Studio],執行 Microsoft Dynamics NAV 2013 R2 可順利登入,在左下角可看到目前登入的使用者。

image

 

以上是較為安全的做法,但如果您無法新增使用者至 Microsoft Dynamics NAV 中,可以考慮將 NAV 資料庫中使用者相關資料表資料刪除,再透過 New-NAVServerUser 指令新增使用者 。開啟 [SQL Server Management Studio] 並且連結到伺服器,在 NAV 資料庫上,按滑鼠右鍵,選擇 [新增查詢]。

image

 

在查詢視窗中,輸入以下內容並且執行:
delete from [dbo].[User]
delete from [dbo].[Access Control]
delete from [dbo].[User Property]
delete from [dbo].[Page Data Personalization]
delete from [dbo].[User Default Style Sheet]
delete from [dbo].[User Metadata]
delete from [dbo].[User Personalization]

 

image

 

透過 New-NAVServerUser 新增使用者,開啟 Microsoft Dynamics NAV 2013 R2 確認是否能正常登入。

image

 

相關參考與連結

New-NAVServerUser

Get-NAVServerUser

NAV 2013: How to log in any database