2016-11-08 112 views
1

由於我們計劃創建多租戶應用程序,因此我正在使用Azure文檔數據庫。Azure DocumentDB多租戶應用程序中的用戶

對於多租戶應用程序,我的想法是創建每個承租人1個數據庫用戶。這爲我提供了租戶數據完全分離的優勢:創建文檔時,將向租戶用戶添加權限。 (讀/寫)這意味着查詢時,數據將始終限定在當前租戶的範圍內。

我也玩弄每個終端用戶1個DB用戶。但是這給我管理文檔安全帶來了很多開銷。當租戶z中的用戶x添加文檔時,來自租戶z的所有用戶都需要更新,併爲該文檔提供額外的權限。這似乎是不可行的。

我的假設是否正確?或者你會爲此提出另一種方法?這種方法有什麼缺點嗎?

回答

2

對於我們的多租戶解決方案,我們選擇了在所有不使用DocumentDB的控制和做所有我們的授權在中間層主要是因爲我們想基於謂詞和每個租戶不同的那樣。也就是說,您在租戶級別使用DocumentDB授權功能的方法是有道理的。這將使您的租戶更加確信其他租戶無法看到他們的數據。

我的一個想法是,如果你有一些交叉租戶功能(也許在租戶分組的形式),那麼它會破壞模型,所以你可能要考慮這一點。

我認爲住戶數百用戶成千上萬,但不管他們,你應該確認DocumentDB授權能力擴展到這一水平。也許監視它的DocumentDB產品經理之一可以嵌入?

+1

在DocumentDB的用戶和權限功能旨在授予一組細粒度資源的直接訪問數據庫。從創建權限生成的資源令牌是臨時的 - 與OATH令牌的行爲方式類似。如果您希望授予用戶對一組資源的直接訪問權限,那麼這非常適合您。如果您只是想爲應用程序隔離租戶,那麼在中間層執行此操作會輕鬆很多。 –