【问题标题】:Designing a user authenication (Roles & Rights) module设计用户身份验证(角色和权限)模块
【发布时间】:2012-08-16 19:31:39
【问题描述】:

我正在尝试为将作为 Delphi UI 应用程序后端的 MS SQL Server 数据库建模用户身份验证模块。基本上,我希望拥有用户只属于一个组的用户帐户。一个组可以拥有“n”个权限。

我还想将密码历史记录添加到数据库中,因为用户需要根据应用程序设置更改密码(例如,每 90 天)。

我还想在用户每次登录和注销时记录一个事件。我可能会将此扩展到未来的其他活动。

你会在下面找到我的第一个破解。请让我知道任何改进它的建议,因为这是我第一次这样做。

您认为对于基于角色的安全性和密码规则/有效期限制是否需要其他属性?

【问题讨论】:

  • 一个用户可以有多个密码吗?如果不是,那么您不需要单独的 USER_PASSWORDS 表(除非您想通过使其只能通过不同的数据库用户访问来额外保护它,在这种情况下,User_Id 将是它的 PK)。
  • 嗨,Jake,即使您提出了一个格式正确的问题,也最好在 dba.stackexchange.com 上提问。对于您的问题,该网站绝对是better suited,并且为这种标签而活得更多。
  • @Branko Dimitrijevic - 密码历史记录用于密码更改 - 以确保用户以后不会再次使用密码。
  • @TLama - 我在那里问了这个问题,但得到的回应较少。
  • @TLama,DBA 有点像鬼城

标签: sql-server database database-design data-modeling


【解决方案1】:

您可以在 Windows 集成身份验证之上构建它吗?这会在一定程度上简化您的设计。

我过去所做的是将 db 角色用于用户权限,然后将授予角色的列表传回给应用程序。这意味着数据输入和检索由后端强制执行,应用程序可以在前端强制执行它想要的任何内容。它还允许您将规则外包给某些外部来源(在这种情况下是 Windows 域)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 2023-01-07
    • 2017-11-15
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多