首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个有3层的登录系统中,有什么更好的方法在数据库和登录系统中创建表?

在一个有3层的登录系统中,有什么更好的方法在数据库和登录系统中创建表?
EN

Stack Overflow用户
提问于 2013-04-16 09:01:00
回答 2查看 989关注 0票数 0

在一个有3层的登录系统中,有什么更好的方法在数据库和登录系统中创建表?

这三个级别是:“客户端”、“附加”和“管理员”。

“客户端”将访问您的所有帐户详细信息,您可以注册“附加”。“附加的”将只能访问一些详细信息。“管理员”可以注册新的“客户端”。

1)只有一个登录url,然后让系统检查用户的级别,然后定向到正确的页面,这样安全吗?

站点。如果其他OR客户端将定向到->站点,则登录com/login。com/client (如果管理员将定向到站点)。com/admin

2)或者最好的方法是为客户端和其他站点提供一个日志文件。com/client/login和其他方式登录到管理员站点。com/admin/login

3)我想我应该创建一个只包含所有用户的ID、Login、Password和LEVEL的表: Clients、Additional和Administrators,并查询该表以查看该用户是否存在,以及有哪些资源可用,然后根据级别在其他表中查找数据,这是安全的做法吗?

4)我还考虑使用INNER JOIN在3个表中进行扫描,以查看用户是否具有访问系统的权限。并让表中的ca级数据完全分开。这是一种有效的替代方案吗?

其他想法?替代方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-16 09:11:01

这是一个相当开放的问题。你肯定想要#1而不是#2,你不想维护2个登录方法。只有一个登录页,并决定用户应该去哪里后,他们登录。

当谈到#3或#4时,我认为你会走得更远。把你的桌子做成这样:

代码语言:javascript
复制
ID, login, password, client_permission_level, admin_permission_level

client_permission_level 1= "additional“client_permission_level 2= "client”admin_permission_level 0=“非管理员”admin_permission_level 1=“管理员”

您可以创建一个更复杂的系统,但这听起来像是可以让您开始。而且,您还可以定义更多级别,如“超级管理员= 2”或“超级客户端= 3”。

票数 1
EN

Stack Overflow用户

发布于 2013-04-16 09:09:14

  1. 如果您希望这样做,那么只需一个登录URL就足够了。您应该将用户的授权级别链接到他们的身份验证(他们的登录名、电子邮件等)。一旦他们通过了身份验证(登录),您就可以从数据库获得他们的授权,并将该信息存储在会话中。用户不能触摸它。
  2. 我看不出这有什么好处,但如果你愿意,你可以这么做。您仍然需要检查每个页面上的授权级别,以确定登录的用户是否能够看到该页面。
  3. 这在任何特定方面都不是不安全的,但它似乎具有您可能需要的关系完整性。
  4. 这没有太大区别,但是为每个访问级别单独创建一个表是没有意义的。除非访问能力是互斥的,否则最多需要两个表(一个用于用户,一个用于级别)。如果它们是互斥的,那么您将需要第三个表来进行用户级映射,但对于您来说似乎并非如此。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16027082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档