2009-05-22 31 views
0

我在Microsoft Dynamics GP中發生了一個問題,並且正在進行研究以查看這是否是原因,但這可能是對SQL Server的訪問問題。 GP將數據存儲在SQL Server中,並且正在使用MS Access訪問表數據。生產數據庫中有些數據似乎缺失。不幸的是,我不知道Access正在做什麼,因爲這不會被透露給我。一個簡單的解決方案是告訴他們停止使用Access來驗證數據是否仍然丟失,但我想在提出這個問題之前知道任何已記錄的問題。將MS Access連接到我應該知道的SQL Server數據庫是否存在任何問題?

因此,爲了最好地猜測發生了什麼,Access在與SQL Server作爲後端連接時做了什麼?它鎖定表嗎?必須採取哪些措施才能使數據丟失或刪除?如果Access是原因,那麼應該採取哪些步驟來解決它?

+0

聽起來像是微軟支持的工作;-) – lothar 2009-05-22 18:48:02

回答

3

您是否打算允許Access更改或刪除數據?

如果沒有,您是否考慮設置一個供Access使用的用戶標識,該標識允許只讀訪問(無雙關語)?

在任何情況下,SQL Server的最佳實踐是確保用戶帳戶具有滿足業務需求所必需的最小訪問權限。請不要給每個人一個密碼爲空的帳戶。

編輯:

像SQL Server Management Studio中訪問的想,換句話說,是交互式工具,可以用於查詢和更改數據庫中幾乎無限的時尚提供您的帳戶具有的權限,允許你做那。由於它是一個可以拉起表格的交互式環境,因此刪除行就如同單擊該行並按下刪除鍵一樣簡單。相似地改變一個數據值就像點擊該行和列並輸入一個新值一樣簡單。

當然,刪除一些東西就像偶然碰到刪除鍵一樣簡單。

當我們向用戶提供這樣一個工具和一個沒有訪問限制的帳戶時,數據最終會被改變,無論是通過意圖,事故還是其他方式,這並不令我感到意外。

+0

謝謝。我與ISV合作。這就是爲什麼我不知道他們在用Access做什麼。 – Kinze 2009-05-22 19:02:54

2

SQL Server數據通常使用鏈接表(即ODBC/OLEDB連接)在MSACCESS中訪問。雖然這項技術有些過時並且沒有完全無缺陷,但我不能想到底層技術中可能造成這種情況的任何事情。

您的普通用戶是否使用包含SQL Server數據庫的管理員標識和密碼的ODBC數據源或連接字符串訪問這些表(即不受限制的權限)?如果他們是,缺少數據將是一個給定的。刪除打開的MSACCESS鏈接表中的行與在Excel中刪除行一樣簡單。

MSACCESS/SQL連接中的記錄鎖定通常是樂觀的(除非您更改它)。在SQL Server 2000以前的版本中,這意味着如果兩個人同時編輯同一條記錄,那麼最後保存的人將獲得(默默地)。如今最後一個人的儲蓄被告知有人在他們正在進行更改時編輯了記錄,並提供了兩種選擇:放棄我的更改或覆蓋其他人的更改。

在任何情況下,只要提供對錶格的只讀訪問權限,就可以減輕很多胃灼熱。

相關問題