2015-04-23 58 views
0

首先,我不是MS Access開發人員。不過,我有一份新工作,必須做一些MS Access開發。我將與另一位有此經驗的開發人員合作。至少比我有更多。如何阻止用戶直接訪問表?

他向我展示的一件事是用戶將進入這個MS Access應用程序,該應用程序進入表單,執行它在那裏執行的任何操作,然後從表單應用程序中敲出來直接訪問表數據庫。 (Access應用程序是SQL Server 2005數據庫的前端)。由於最終用戶可以直接訪問SQL表,所以您可以想象他們可以進入哪種惡作劇。 (Access應用程序是由未完成的應用程序的承包商編寫的。)

所以我的問題是這樣的:我們如何防止最終用戶離開Access應用程序直接與SQL表交互?我認爲這是可能的,但正如我所說我不是Office開發人員,所以我不知道該如何做,甚至不知道我會尋找什麼樣的東西。

訪問應用寫入MS Access 2007中

回答

2

@rod 一般安全MS訪問被提供的水平是不是很令人印象深刻。但它爲您提供了一些安全性,防止新手用戶訪問不需要的信息。

尋找:

一些有用的研究/投資將是。

的MS Access
  • 自定義功能區的創造者,這將幫助您提供自己的按鈕/絲帶(我用ribboncreator)
  • 提供會員/用戶帳戶。由於您已經擁有專用的SQL Server,因此您可以將用戶憑據保存在隱藏於前端的後端表中。檢查用戶通過編寫存儲過程/函數訪問。
  • 編寫函數以收集錯誤,活動並上傳到LOG表並監視活動。使用網絡服務+ MSXML2.XMLHTTP +異步執行此任務。}
2

爲用戶創建用戶界面以導航應用程序。最基本的只是一個表單,它有按鈕來打開用戶需要在應用程序中訪問的所有其他表單。

然後使用功能區導航到「文件」 - >「選項」 - >「當前數據庫」。 從上面的步驟中選擇表單作爲應用程序的「顯示錶單」,然後取消選中「使用訪問特殊鍵」,「顯示導航窗格」,「允許完整菜單」,「允許默認快捷菜單」下的所有選項。

這將啓動你訪問應用程序,並顯示選定的表單,而不用任何標準的UI來處理表格或應用程序中其他對象的設計。

但請注意,這只是防止普通用戶通過更改他們不應該更改的東西來製造意外錯誤。這不會阻止惡意和知識淵博的攻擊者。

如果要打開應用程序進行開發,請在打開文件時按住SHIFT-Key。

0

Access之外的另一個選擇是拒絕AD組對DELETE權限具有對SQL表的讀/寫訪問權限。我能成功做到這一點使用Access 2013和Microsoft SQL Server Management Studio中2012 This post discusses the command.

DENY DELETE ON tablename to [DOMAIN\groupname]; 

的AD組中的用戶都能夠通過我們所創建的UI修改和刪除數據,但無法打開表,選擇一行,然後點擊刪除鍵。他們收到以下錯誤:「ODBC - 刪除鏈接的表'tablename'失敗.... DELETE權限被拒絕對象....」