database - 批评我的身份验证系统数据库架构?

标签 database authentication schema authorization

我正在设计一个 RESTful Web 应用程序,它将为其他几个应用程序提供身份验证系统。其他应用程序将通过 HTTP 查询此应用程序并取回描述已验证用户的 XML。

身份验证应用需要跟踪哪些用户被允许在哪些应用上做什么

我正在制定数据库架构。下面是我的初步设计。 (假设每个表都有一个 id 列。)

applications  # The various client apps that will query this auth system.
------------
name

users         # Table simplified for discussion
-----
username
password
email

roles
-----
name
application_id

roles_users
-----------
role_id
user_id

这个想法是说有人试图在“设备 list ”应用程序中执行管理功能。因此,“设备 list ”会对身份验证系统说“获取用户名 xxx 和密码 yyy 的用户”。然后它会查看返回的(通过 ActiveResource)User 对象并检查其 roles 数组是否包含名为“ADMIN”的 Role它本身属于名称为“设备库存”的应用程序对象。

或者删除 applications 表并拥有更多角色可能会更好,例如,“equipment_inventory_admin”、“equipment_inventory_readonly” 、“job_tracker_admin”等

规范化Application实体还是简化表结构哪个更重要?也许在打字之后我刚刚回答了我自己的问题,但欢迎提出意见或建议。

最佳答案

架构看起来很正常, 你会发送

<login><username>abc</username><password>xyz</password><app>51</app></login>

你回来了

<auth> <user> <username>abc</a> <lastlogin>123456464</lastlogin> </user> <app> <name>Equipment Inventory</name> <version>3.1.5e</version> </app> <roles> <role>admin</role> <role>manager</role> <role>dataentry</role> </roles> </auth>

<auth><error type="1"></auth>

关于database - 批评我的身份验证系统数据库架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/493334/

相关文章:

database - 尝试使用随机数据更新列时出现 ORA-06502

mysql查找表模式

java - 生成类型标识给出错误,即 id(primary key) 没有默认值

wcf - 将 WCF 自定义身份验证 session 传输到服务

php - 如何通过记住 token 禁用用户登录?

php - 如果 Laravel 的内置身份验证中的身份验证逻辑重定向?

nhibernate - 即使有博客文章,也很难理解 nHibernate SchemaUpdate

solr - 在 Solr 中编辑哪个 schema.xml 文件?

php - 从数据库中选择一个值

asp.net-mvc - 从数据库中获取介于 2 个日期之间的数据