來自sql背景。當我想根據用戶的某些屬性限制對數據的訪問時,我可以創建一個視圖並將該視圖用作過濾器,以根據視圖中的條件限制用戶看到的數據。這種方法依賴於關係,迄今爲止它已經爲我工作。看看NoSql以及戰略和概念的轉變,我對如何實現這種認識NoSql的本質感到困惑。什麼是NoSql方法來解決這個問題?當用戶只根據用戶類型查詢特定行時?例如,假設管理員可以查看特定組的所有記錄,並且通用用戶只能看到他們的記錄以及組內公開的某些組級別項目,組照片,組消息等。我真的試圖繞過我的腦海,不考慮SQL方法來解決這個問題,但我是NoSQL的新手,所以這一直是一個挑戰。用於向數據行提供授權的NoSql策略
0
A
回答
0
NoSQL數據庫在許多方面在概念上與關係數據庫不同。一般來說授權和安全並不是他們的主要關注點。但是,他們中的大多數都是在這方面發展起來的,並且他們擁有精細的授權。基本上,它取決於特定的數據庫。
例如,Cassandra在計劃中具有列級權限(https://issues.apache.org/jira/browse/CASSANDRA-12859),HBase具有單元級權限(https://www.cloudera.com/documentation/enterprise/5-8-x/topics/cdh_sg_hbase_authorization.html)。另一方面,MongoDB通常是無模式的,它有不同的(更復雜的)面向文檔的數據模型,這使得很難實現低級訪問控制。另外,MongoDB有意見。
因此,如果您正在使用的DBMS在預期級別上沒有內置授權,則必須在與db進行交互的應用程序內部實現(如果存在多個應用程序,則情況會變得棘手,並且一些使用規則必須建立)。使用非規範化模型是很常見的事情,所以不同的角色/組可以與不同的表/集合進行交互,這些表包含僅包含角色/組可以看到的數據(基本上,它是對RDBMS視圖的模擬)。這種非規範化的方法通常需要更多的空間,並且需要保持副本同步。如果DBMS支持投影,則可以爲不同的角色/組呈現不同角色/組的字段子集(這樣,至少有一些處理是在數據庫端完成的)。
我希望這會有所幫助,儘管這是一個遲到的答案。
相關問題
- 1. Rails4授權策略
- 2. Laravel的授權策略5.3
- 3. 策略的自定義授權參數
- 4. 使用策略的Laravel授權
- 5. 訪客用戶的授權和策略
- 6. Symfony 2:表單權限授權策略
- 7. 試用軟件/授權策略
- 8. .net中的高級授權策略
- 9. 選擇性地將授權策略應用於操作
- 10. 多租戶數據庫。文件ID和授權策略
- 11. 如何更改dspace授權策略?
- 12. 刷新AWS API網關授權策略
- 13. 密碼策略和授權矩陣
- 14. 在Laravel 5.2中配置授權策略
- 15. 授權策略擁有多個聲明
- 16. Laravel策略返回未經授權
- 17. Spring oauth2授權提供商
- 18. 基於ASP.NET核心自定義策略的授權 - 不清楚
- 19. 基於IP的授權策略與屬性
- 20. 僅向授權用戶提供ASP.NET中的靜態文件
- 21. MongoDB作爲NoSQL數據庫僅提供優於ElasticSearch的優勢
- 22. 策略文件中的Java安全授權權限
- 23. Java安全策略:根據類加載器授予訪問權
- 24. 如何在Laravel 5.3中執行授權策略?
- 25. JACC策略提供程序:失敗的權限檢查權限(「(」java.security.SecurityPermission「」setPolicy「)」)
- 26. 關於Toplink提取策略
- 27. Grails中的Spring Security提供授權
- 28. 處理跨平臺用戶認證和授權的策略
- 29. 使用WSO2身份授權模塊創建基於Xpath的策略
- 30. SQL Query爲多個登錄提供數據庫授權