数据库独立行级安全解决方案

有谁知道Java / C#数据库独立授权库。 该库应支持跨公司组织结构的读取,写入,删除和插入操作。

像这样的东西:
– 用户可以看到所有文件
– 用户可以输入分配给他的单位的新文件
– 用户可以更改分配给其单元和所有从属单元的所有文档。
– 用户可以删除分配给他的文档

我还应该能够创建自定义操作(除了读,写,…)将它们连接到某个类并将“安全令牌”分配给用户(例如document.expire)。 如果没有任何免费或商业图书馆,是否有一本书可用于实现此function?

谢谢。

我也对缺乏安全框架感到惊讶。

有Rhino Security 。 Ayende有一些关于它的博客文章 。

另一篇博客上也有几篇文章 。

也可以将它与S#arp Architecture一起使用。

不能说我已经在一个项目中实现了它,只是读了一会儿。 这是我能找到的唯一类型的实现。

我发现一个库具有与我的需求类似的function:

http://www.codeproject.com/KB/database/AFCAS.aspx

奇怪的是,网上没有任何更多内容,因为这是每个严肃的应用程序都面临的问题。 至于文档/示例,我发现的最好的是CRM系统的授权模块,如:
– Siebel – Siebel安全指南 – 第10章。访问控制
– Sugar CRM – http://www.sugarcrm.com/crm/products/capabilities/administration/access.html
– Microsoft CRM – http://msdn.microsoft.com/en-us/library/ms955698.aspx

这是我需要的一种function。 我想这将是DIY任务。

在客户端库中实施安全解决方案的问题在于它仅对客户端工具有效。 这听起来很漂亮,但你要打开数据库本身的巨大安全漏洞。 因此,如果用户直接连接到数据库(例如使用Access ADP到SQL Server),他们就可以完全控制用户角色。 如果您在客户端库中进行限制,他们需要完全访问数据库中的所有内容。

对于Web应用程序和Web服务而言,这不会是一个大问题的唯一情况。 如果您的Web服务执行了安全性并将其隐藏在Web服务接口后面(因此无法直接访问数据库),那么它将是安全的。 这可能是您正在谈论的内容,但未在您的问题中指明。

如果您使用胖客户端,是否有理由不想将安全逻辑放在数据库端? 您提到了数据库独立,但您在每个平台中都没有指定任何内容。 您基本上是在描述检查用户是否有权编辑记录的前/后触发器。 完整的RLS还会限制用户根据平台查看和使事情变得更加困难的权利。