最简单的用户权限架构

权限架构是什么

权限架构(Permission Architecture)是一种管理和控制系统中用户访问资源的方式。它定义了谁可以访问哪些资源以及如何进行这些访问。权限架构的主要目标是确保系统的安全性和数据的完整性,防止未授权的访问和潜在的安全威胁。
通俗一点说,对于一个系统,我们需要规定每个用户能干什么,不能干什么,这也就是每个用户的权限,我们需要设置合理的权限去管理每一个接口。

权限架构包含什么

一个最基础的权限架构通常会包含三个内容,两种,一个是具体的用户,一个是用户组,一个是权限,另一种是,用户,角色,权限。在大部分的系统中,我们通常只会将权限赋予用户组,然后用户属于用户组。

五表结构

经典的五表结构是指在权限管理系统中常见的五张核心数据表,用于管理用户、角色、权限以及它们之间的关系。这种结构能够清晰地定义和维护权限体系,广泛应用于基于角色的访问控制(RBAC)模型。五表结构通常包括以下五张表:

用户表(users)

  • 记录系统中所有用户的信息。
  • 典型字段:用户ID、用户名、密码、电子邮件、状态(如激活或禁用)等。
    CREATE TABLE users (
    user_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
    username VARCHAR ( 50 ) NOT NULL UNIQUE COMMENT '用户名',
    PASSWORD VARCHAR ( 255 ) NOT NULL COMMENT '密码',
    created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' 
    ) COMMENT '用户表';

    角色表(Role)

  • 存储角色的基本信息,如角色ID、角色名、角色描述等。角色是权限的集合,用户通过角色来获得权限。
    CREATE TABLE roles (
    role_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '角色ID',
    role_name VARCHAR ( 50 ) NOT NULL UNIQUE COMMENT '角色名称',
    description VARCHAR ( 255 ) COMMENT '角色描述',
    created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' 
    ) COMMENT '角色表';

    权限表(Permission)

  • 存储权限的基本信息,如权限ID、权限名、权限描述等。权限通常对应于系统中的某些操作或资源的访问控制。
    CREATE TABLE permissions (
    permission_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '权限ID',
    permission_name VARCHAR ( 50 ) NOT NULL UNIQUE COMMENT '权限名称',
    description VARCHAR ( 255 ) COMMENT '权限描述',
    created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' 
    ) COMMENT '权限表';

    用户角色关系表(UserRole):

  • 存储用户和角色之间的关系,通常包括用户ID和角色ID。这个表用来表示一个用户拥有哪些角色。
    CREATE TABLE user_roles (
    user_id INT COMMENT '用户ID',
    role_id INT COMMENT '角色ID',
    assigned_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '分配时间',
    PRIMARY KEY ( user_id, role_id ),
    FOREIGN KEY ( user_id ) REFERENCES users ( user_id ) ON DELETE CASCADE ON UPDATE CASCADE,
    FOREIGN KEY ( role_id ) REFERENCES roles ( role_id ) ON DELETE CASCADE ON UPDATE CASCADE 
    ) COMMENT '用户角色关联表';

    角色权限关联表(rolePermissions)

  • 存储权限与角色之间的关系,通常包括权限ID和角色ID。这个表用来表示一个角色拥有哪些权限
    CREATE TABLE role_permissions (
    role_id INT COMMENT '角色ID',
    permission_id INT COMMENT '权限ID',
    assigned_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '分配时间',
    PRIMARY KEY ( role_id, permission_id ),
    FOREIGN KEY ( role_id ) REFERENCES roles ( role_id ) ON DELETE CASCADE ON UPDATE CASCADE,
    FOREIGN KEY ( permission_id ) REFERENCES permissions ( permission_id ) ON DELETE CASCADE ON UPDATE CASCADE 
    ) COMMENT '角色权限关联表';
版权声明:除特殊说明,博客文章均为栋dong原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。
如有需要,请在留言板留言,或者添加我的QQ或者微信
我只是一个学生,如有错误或者侵权,请联系我,谢!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇