2010-12-06 92 views
0

我們有一個問題,我們的客戶之一是直接在數據庫中更改數據。防止用戶訪問應用程序數據庫

由於我們有一個API,我們希望我們的客戶使用它。如果堅持手動更改數據,我們威脅不支持他們的解決方案。

我的查詢是,有沒有一種技術方法可以防止從我們的應用程序以外的任何其他任何東西訪問數據庫?

這是一個sql server數據庫,我們的客戶擁有服務器並管理數據庫服務器,所以基本上我們需要一種方法來鎖定SA。

謝謝

+0

澄清:這是誰直接訪問數據庫管理員用戶。他們正在編輯表格上的業務數據。我們正在考慮的一個選擇是在所有表格上放置觸發器,但這需要複製我們希望保留在應用代碼 – stevenrcfox 2010-12-06 13:19:00

+0

中的複雜業務規則和工作流程。根據您的許可數據評論,最合理的選擇是加密數據庫上的敏感數據並解密應用程序中的數據。 – 2010-12-06 15:28:29

回答

3

第一件事...你不能:

  • 在所有鎖定SA或系統管理員權限在服務器級別
  • 在數據庫級別

鎖定的db_owner/DBO現在我們已經清除了那個,誰直接訪問數據?

  • 如果您的意思是最終用戶正在更改數據,那麼您有一個安全問題:他們應該只能使用API​​,甚至無法連接。

  • 如果您是指系統管理員級別的用戶(例如DBA或BOFH類型),那麼可能有合法的原因。您的API是否支持所有操作?作爲一名DBA,我不得不這樣做打開的表術上寫的不好的第三方應用程序,然後現在

  • 如果最終用戶擁有系統管理員級別權限,那麼你在客戶公司

內的政治問題編輯:

對他們的問題由OP評論後...管理員用戶可以禁用觸發器...

1

你公開API嗎?它不應該是如果你可以更改數據沒有任何身份驗證。我建議使用一些內部認證機制。確保傳入查詢安全執行的基本質詢/響應協議,或類似的東西。