簡體   English   中英

為了保護將要由多個客戶端訪問的數據庫,將Web服務用作代理是否過大?

[英]for securing a database that is meant to be accessed by several clients, is using a web service as a proxy an overkill?

我們將擁有一個數據庫,以及一個客戶端應用程序,該客戶端應用程序將被安裝在局域網中的多台計算機上,並且它們必須能夠訪問數據庫。

它們中的一些必須能夠編輯和修改數據庫,而另一些將僅讀取它們。 根據誰必須能夠訪問哪個表/字段,這兩個組中的每一個也分為幾個組。

為了創建此應用程序,我們建議您部署一個Web服務以充當客戶端和數據庫之間的代理,以保護數據庫。

但是我們不會傳輸任何敏感數據(例如信用卡號或...),我們只擔心未經授權的人不能修改數據庫。

僅僅使用app.config中的integrated security選項還不夠嗎?
我們真的需要隱藏並保護連接字符串嗎?

聽起來對我來說太過分了。 如果僅在內部使用該應用程序,並且可以選擇Windows身份驗證,則一定要使用它。 構建Web服務只會減慢開發速度並增加不必要的復雜性。 讀/寫用戶可以是對數據庫具有讀/寫訪問權限的Windows組的成員,而只讀用戶可以是僅對數據庫具有讀訪問權限的Windows組的成員。 然后,如果用戶能夠直接訪問數據庫(而無需使用您的前端),則他們只能基於Windows權限進行讀取或讀取/寫入。

這可能是矯kill過正,但事實並非如此。 決定采用面向服務的體系結構可能基於幾個因素,其中包括:

  • 您希望維持此應用多長時間?
  • 您期望多少個客戶端部署?
  • 您是否希望數據庫經常更改?
  • 您的SLA要求是什么?
  • 您是否希望該數據庫最終可用於其他應用程序?
  • 等等...

總而言之,如果您希望能夠更改中間層或數據庫中的內容,並且不想在升級時升級每個客戶端,則添加服務層可能是實現升級的一種方法。走。 您還具有為其他客戶端開發人員(內部或外部)提供豐富的API的優勢,同時可以在一個集中的位置控制業務規則和安全性。

SOA無疑增加了項目的復雜性,但是在許多情況下,它可以節省您將來的許多麻煩。

如需進一步閱讀,看http://en.wikipedia.org/wiki/Service-oriented_architecturehttp://www.soapatterns.org/ ,或谷歌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM