基於角色的許可權訪問控制 RBAC

2021-08-22 08:26:39 字數 2677 閱讀 4027

五個表:

管理員表: z_admin 

create table `z_admin` (

`id` smallint(5) unsigned not null auto_increment comment '管理員id',

`username` varchar(50) collate utf8mb4_unicode_ci not null comment '使用者名稱',

`password` varchar(255) collate utf8mb4_unicode_ci not null comment '密碼',

`created_ip` int(11) unsigned not null comment '建立該管理員的時候的ip',

`created_at` int(11) unsigned not null comment '建立時間',

`is_used` tinyint(1) unsigned not null default '0' comment '是否啟用 0表示啟用 1表示禁用',

primary key (`id`),

unique key `username` (`username`)

) engine=innodb default charset=utf8mb4 collate=utf8mb4_unicode_ci comment='管理員表';

規則表: z_rule

create table `z_rule` (

`id` smallint(5) unsigned not null auto_increment comment '規則id',

`rule_url` varchar(255) collate utf8mb4_unicode_ci not null default '' comment '驗證規則',

`parent_id` int(11) unsigned not null comment '父id',

`rule_desc` varchar(255) collate utf8mb4_unicode_ci not null default '' comment '規則描述',

primary key (`id`)

) engine=innodb default charset=utf8mb4 collate=utf8mb4_unicode_ci comment='規則表';

角色表: z_role 

create table `z_role` (

`id` int(11) unsigned not null auto_increment comment '角色id',

`role_name` varchar(30) collate utf8mb4_unicode_ci not null comment '角色名',

`role_desc` varchar(255) collate utf8mb4_unicode_ci not null comment '角色描述',

`created_at` int(11) unsigned not null comment '建立時間',

primary key (`id`)

) engine=innodb default charset=utf8mb4 collate=utf8mb4_unicode_ci comment='角色表';

管理員角色關係表: z_admin_role

create table `z_admin_role` (

`id` int(11) unsigned not null auto_increment,

`admin_id` smallint(5) unsigned not null comment '管理員id',

`role_id` smallint(5) unsigned not null comment '角色id',

primary key (`id`),

unique key `admin_role` (`admin_id`,`role_id`)

) engine=innodb default charset=utf8mb4 collate=utf8mb4_unicode_ci comment='管理員與角色表關係表';

角色規則關係表:    z_role_rule 

create table `z_role_rule` (

`id` int(11) unsigned not null auto_increment,

`role_id` smallint(5) unsigned not null comment '角色id',

`rule_id` smallint(5) unsigned not null comment '規則id',

primary key (`id`),

unique key `role_rule` (`role_id`,`rule_id`)

) engine=innodb default charset=utf8mb4 collate=utf8mb4_unicode_ci comment='角色規則表';

關係: 

乙個管理員可以有多個身份(角色),乙個身份(角色)可以有多個管理員,所以 管理員與角色是多對多關係。

乙個身份(角色)可以擁有多個規則,乙個規則可以被多個身份(角色),所以角色和規則是多對多關係。

RBAC許可權管理(基於角色的訪問控制)

一 概述 role based access control,基於角色的訪問控制,就是使用者通過角色與許可權進行關聯。乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。如圖1 圖1...

RBAC 基於角色的訪問控制

rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...

RBAC 基於角色的訪問控制

rbac 是基於角色的訪問控制 role based access control 在 rbac 中,許可權與角色相關聯,使用者通過成為適當角色的成員而得到這些角色的許可權。這就極大地簡化了許可權的管理。這樣管理都是層級相互依賴的,許可權賦予給角色,而把角色又賦予使用者,這樣的許可權設計很清楚,管理...