代码之家  ›  专栏  ›  技术社区  ›  Filip

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

  •  3
  • Filip  · 技术社区  · 16 年前

    有人知道爪哇C/C数据库独立授权库吗?这个库应该支持跨公司组织结构的读、写、删除、插入操作。

    像这样:
    -用户可以查看所有文档
    -用户可以输入分配给其单位的新文档
    -用户可以更改分配给其单位和所有下属单位的所有文档。
    -用户可以删除分配给他的文档

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

    谢谢。

    3 回复  |  直到 15 年前
        1
  •  1
  •   quentin-starin    15 年前

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

    Rhino Security . 阿扬德有一个 handful of blog posts about it .

    另一个博客有一个 couple 属于 articles 它也一样。

    它可以与 S#arp Architecture 也。

    不能说我已经在一个项目中实现了它,只是在前一段时间读一下它。这是我能找到的唯一一种实现。

        2
  •  1
  •   Filip    16 年前

    我发现有一个库的功能与我的需求类似:

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

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

    这是我需要的一种功能。我想这将是一项DIY任务。

        3
  •  1
  •   CuppM    15 年前

    在客户机库中实现安全解决方案的问题是,它只对客户机工具有效。这听上去很糟糕,但你留下了一个巨大的安全漏洞,那就是数据库本身。因此,如果用户直接连接到数据库(例如使用对SQL Server的访问ADP),那么他们对其用户角色具有完全控制权。如果您在客户机库中执行限制,他们将需要对数据库中的所有内容进行完全访问。

    唯一没有那么大问题的情况是Web应用程序和Web服务。如果您的Web服务实现了安全性,并将其隐藏在Web服务接口后面(因此没有直接访问数据库),那么它将是安全的。这可能是你所说的,但在你的问题中没有具体说明。

    如果您使用的是胖客户机,为什么不想将安全逻辑放在数据库端呢?您提到了独立于数据库,但在每个平台中都很难提供您指定的任何内容。基本上,您描述的是检查用户是否有权编辑记录的前/后触发器。完整的RLS还将限制用户的查看权限,并根据平台的不同稍微增加一些难度。