2012-11-30 55 views
1

我的客戶已使用Microsoft Access 2010很長一段時間,他們收到了一些安全審覈要求。他們正在使用連接到Microsoft SQL Server 2012 Express的鏈接表方法。安全審計(CRUD) - Microsoft Access

要求指出,必須記錄針對數據的所有操作。 (INSERT,UPDATE,DELETE和SELECT語句)

對於INSERT,UPDATE,DELETE語句,我可以創建一個觸發器來記錄更改。

問題出在SELECT語句的審計上。如果數據是隻讀的,我可以使用一個記錄查詢的存儲過程。但是執行Stored Proc會使Recordset無法更新。

有沒有人有想法如何接近這一挑戰?

我打開了很多的策略...(連接訪問通過Web服務,什麼SQL ...)

需要注意的是我的客戶沒有$ 30K把錢花在這一點很重要SQL Sever的企業版,因爲它們是少於10名員工的小企業。

+0

是/否......我需要有非常好的參數來切換到不同的RDBMS。有一點可以肯定的是,我被鎖定在Microsoft Access中......在我加入之前,他們花費了許多小時的開發時間。 –

+0

選擇命令的跟蹤看起來不甚理想。綁定到表的訪問表單允許使用SQL分析器 - 即使是快速版。現在的問題是您加載了500條記錄,然後用戶點擊ctrl-f查找一行。這樣的ctrl-f命令不會生成或導致任何SQL被髮送到服務器。沒什麼不同,然後下載一個網頁,用戶點擊ctrl-f。跟蹤SELECT非常少地告訴你用戶實際看到的內容,除非所有表單在打開時通過「where」子句限制爲一條記錄。如果所有表單都加載到一條記錄,則可以記錄此類選擇語句。 –

回答

1

SELECT語句是database-level audit action groups in SQL Server的一部分。 (在該頁面中搜索「數據庫級審計操作」。)但是,該級別的審計需要SQL Server Enterprise版本。

從理論上講,無論數據是否只讀,您都可以限制所有訪問只使用存儲過程。編寫存儲過程,首先將審計信息寫入日誌,然後執行任何其他需要完成的操作 - SELECT,INSERT等。

實際上,您的可能無法做到這一點。它取決於打到數據庫的應用程序。限制所有訪問只使用存儲過程可能會破壞期望其他事情的應用程序。 (如果您切換到存儲過程,Ruby on Rails應用程序如何響應?)

使您的數據庫無法使用的防彈審計系統不太好;只需關閉數據庫服務器就更簡單,更便宜。

+0

主要問題是我正在使用Microsoft Access。如果我正在開發.NET Web App,那麼我會信任Web應用程序並使其負責創建審計記錄。 –

+0

Microsoft Access不應該是一個問題。審計和權限應位於後端dbms(SQL Server)中,而不是應用程序代碼中。 DBA(通常是其他人)通常可以圍繞應用程序代碼進行操作。 –

+0

我同意你的看法......我懷疑我可以在Access中實現這樣的審計控制......據我所知,一個鏈接表到SP(這將創建審計跟蹤)使Access表在Access中只讀。 我相信我唯一的選擇是創建各種C/R/U/D存儲過程並通過VBA調用它們。我的意思是.NET Web應用程序的意思是:因爲我完全信任Web應用程序,所以我可以依靠它調用SP來獲取數據並調用常規INS/UPD/DEL,這會觸發記錄改變。 (或者只是讓Web應用程序記錄審計線索,因爲我可以完全信任該應用程序)? –

0

您可以升級到支持SQL Server分析器的SQL Server版本。 另一種選擇是讓其他工具像SQL審計一樣進行審計。

0

您可以打開JET showplan。這將記錄Access使用的所有查詢。

http://www.techrepublic.com/article/use-microsoft-jets-showplan-to-write-more-efficient-queries/?siu-container

正如我在評論中指出你真的除非每個表單使用限制數據的查看在形式向一個記錄where子句開愚弄審計要求。如果你不這樣做,那麼一個鏈接表打開的表單可能有1000條記錄,並且用戶敲擊ctrl-f來查找並跳轉到一條記錄意味着SELECT語句告訴你ZERO關於用戶的實際內容看着。因此,儘管您可以啓用展示計劃,但除非對應用程序設計進行了更改以將表單限制爲一條記錄,否則審計概念不會告訴您有關用戶實際查看的內容。公平地說,99%的申請實際上是通過where子句打開並限制主要編輯表單到一條記錄。

因此,雖然您可以根據上述技術對所有SELECT命令進行日誌記錄,但它並不真正處於這種日誌的精神之中,因爲這樣的日誌不會用於確定用戶查看的實際記錄。