分层用户和角色表示的数据库模式

时间:2010-03-02 19:27:53

标签: sql-server schema roles hierarchy

我正在寻找基本登录的通用开源数据库模式,以及具有角色的用户管理。

用户:属于属于客户的业务单位。

用户拥有角色 - 经理,区域经理,站点管理员,工作人员等。用户可以拥有多个角色,这些角色取决于业务部门和多个业务部门。

业务单位属于客户。 业务单位可以包含其他业务单位(区域包含其他包含业务单位的区域)。

功能:描述系统中的行为实体。 功能分配给用户或角色,或两者,并且业务单位和/或客户端在系统中具有活动功能。

比如说它是一个会计系统,并且具有应付账款,应收账款,报表,总账等功能,具体取决于客户/业务单位/角色/用户的活动内容,用户看到的是有效的矩阵层次结构。

是否有人引用了与此类似的架构以满足这些基本要求?如果它有基于Web的界面的代码(用户登录,管理用户,区域,角色等).Net C#首选,但我可以翻译。

2 个答案:

答案 0 :(得分:1)

在SQL数据库中实现这一要求有多难?有许多设计可行,但如果您正在寻找现成的东西,那么您所描述的是LDAP,即发球。这仅描述了协议,但有许多不同的开源实现,包括Apache Directory ServerOpenLDAP。维基百科有广泛的list of LDAP software

这是需要考虑的事情。如果您需要将其与另一个SQL数据库紧密集成,为用户强制实施参照完整性等,那么这可能对您不起作用。但是,如果你正在寻找通用和可扩展的东西,这可能是要走的路。您会发现大多数成员/角色数据库(例如由ASP.NET SQL Server Registration Tool创建的数据库)都不是分层的,因为松散的层次结构很复杂。

如果您需要嵌套任意数量的业务单位,那么管理所有规则和覆盖不是一项简单的任务。这正是我们拥有分层目录协议的原因。

(注意 - 如果您已经在Microsoft环境中,那么Active Directory将是显而易见的选择;它不是开源的,但它可能是任何目录服务器中最强大和最受支持的。)

答案 1 :(得分:0)

不完全是你想要的,但一个开始:

http://www.databaseanswers.org/data_models/user_identity_management/index.htm

您是否看过ASP.NET会员资格?有一个脚本可以创建.net目录中的所有对象。如果您使用Visual Studio中的默认值创建网站,则可以使用网站管理工具来管理用户。