在我正在设计的数据库中,我已经实现了基于配置文件的对象级安全性。
每个用户都可以根据他所属的配置文件(角色)查看、编辑、插入、更新数据库表。
现在需要实现“外部用户”,他们只能查看相关记录并编辑其中的一些记录(但不能编辑数据库的大部分内容)。
我正在研究“记录所有权”模型。
是否有关于如何限制属于“外部用户”配置文件的用户查看和使用每个表的一些记录的任何想法,但不是全部。
在我正在设计的数据库中,我已经实现了基于配置文件的对象级安全性。
每个用户都可以根据他所属的配置文件(角色)查看、编辑、插入、更新数据库表。
现在需要实现“外部用户”,他们只能查看相关记录并编辑其中的一些记录(但不能编辑数据库的大部分内容)。
我正在研究“记录所有权”模型。
是否有关于如何限制属于“外部用户”配置文件的用户查看和使用每个表的一些记录的任何想法,但不是全部。
您可以创建一个 VIEW,或者您可以创建选择的存储过程并只为这些过程分配权限。
VIEW 是采用简单安全模型的方法——如果它很复杂,请使用存储过程。
您可能应该创建一个 VIEW 来限制记录,然后在视图上应用适当的权限。
我有我的初稿。它是这样的:
该应用程序是一个项目管理/问题跟踪/事件管理/协作 Web 应用程序。
我创建了一个角色“外部用户”。默认情况下,该角色的用户
管理员可以创建一个用户组“外部合作伙伴”并分配给该用户组一些项目和产品(有问题)
该组的成员可以选择分配的对象。
这是一个复杂的解决方案,但也是唯一解决我的客户问题的解决方案(他们不希望外部合作伙伴访问他们所有的项目数据库)。