来自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为多个登录提供数据库授权