Springboot+vue前後端分離バックグラウンド管理システム(5)--バックグラウンド権限テーブル構造設計
RBACとは
RBACは、ロールベースのアクセス制御(
参照:https://shuwoom.com/?p=3041
こちらの管理システムは最も簡単なRBAC 0モデルしか使いません
テーブルデザイン sys_userテーブル sys_roleテーブル sys_menuテーブル sys_user_roleテーブル sys_role_menuテーブル
もう一つのコードは構成表を生成し、後のビジネスコードはこの表の構成によって統一的に生成される. sys_gen
以上が権限ベースのバックグラウンド管理ベーステーブルです.
RBACは、ロールベースのアクセス制御(
Role-Based Access Control
)RBACでは、ユーザは、適切なロールのメンバとなることによって、これらのロールの権限を得る.これにより、権限の管理が大幅に簡素化されます.このように管理するのはすべて階層が互いに依存して、権限は役に与えて、役をまたユーザーに与えて、このような権限の設計はとてもはっきりしていて、管理するのはとても便利です.参照:https://shuwoom.com/?p=3041
こちらの管理システムは最も簡単なRBAC 0モデルしか使いません
テーブルデザイン
CREATE TABLE `sys_user` (
`id` varchar(32) NOT NULL,
`username` varchar(32) NOT NULL COMMENT ' ',
`password` varchar(64) NOT NULL COMMENT ' ',
`sex` char(1) DEFAULT NULL COMMENT ' 0 | 1 ',
`locked` char(1) DEFAULT NULL COMMENT ' 0 | 1 ',
`create_time` datetime DEFAULT NULL COMMENT ' ',
`create_by` varchar(32) DEFAULT NULL COMMENT ' ',
`update_time` datetime DEFAULT NULL COMMENT ' ',
`update_by` varchar(32) DEFAULT NULL COMMENT ' ',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `sys_role` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`code` varchar(32) NOT NULL COMMENT ' ',
`name` varchar(32) DEFAULT NULL COMMENT ' ',
`forbidden` varchar(1) DEFAULT NULL COMMENT ' 0: | 1: ',
`create_by` varchar(32) DEFAULT NULL COMMENT ' ',
`create_time` datetime DEFAULT NULL COMMENT ' ',
`update_by` varchar(32) DEFAULT NULL COMMENT ' ',
`update_time` datetime DEFAULT NULL COMMENT ' ',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' ';
CREATE TABLE `sys_menu` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`parent_id` varchar(32) DEFAULT '0' COMMENT ' ID',
`code` varchar(32) NOT NULL COMMENT ' ',
`name` varchar(32) NOT NULL COMMENT ' ',
`type` char(1) DEFAULT NULL COMMENT ' 0: | 1: ( )',
`permission` varchar(32) DEFAULT NULL COMMENT ' ',
`icon` varchar(32) DEFAULT NULL COMMENT ' ',
`path` varchar(32) DEFAULT NULL COMMENT ' ',
`component` varchar(32) DEFAULT NULL COMMENT ' ',
`sort` varchar(32) DEFAULT NULL COMMENT ' ',
`forbidden` varchar(1) DEFAULT NULL COMMENT ' 0: | 1: ',
`create_by` varchar(32) DEFAULT NULL COMMENT ' ',
`create_time` datetime DEFAULT NULL COMMENT ' ',
`update_by` varchar(32) DEFAULT NULL COMMENT ' ',
`update_time` datetime DEFAULT NULL COMMENT ' ',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' ';
CREATE TABLE `sys_user_role` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`user_id` varchar(32) NOT NULL COMMENT ' ID',
`role_id` varchar(32) NOT NULL COMMENT ' ID',
`create_by` varchar(32) DEFAULT NULL COMMENT ' ',
`create_time` datetime DEFAULT NULL COMMENT ' ',
`update_by` varchar(32) DEFAULT NULL COMMENT ' ',
`update_time` datetime DEFAULT NULL COMMENT ' ',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_role` (`user_id`,`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' ';
CREATE TABLE `sys_role_menu` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`role_id` varchar(32) NOT NULL COMMENT ' ID',
`menu_id` varchar(32) NOT NULL COMMENT ' ID',
`create_by` varchar(32) DEFAULT NULL COMMENT ' ',
`create_time` datetime DEFAULT NULL COMMENT ' ',
`update_by` varchar(32) DEFAULT NULL COMMENT ' ',
`update_time` datetime DEFAULT NULL COMMENT ' ',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_role_menu` (`role_id`,`menu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' ';
もう一つのコードは構成表を生成し、後のビジネスコードはこの表の構成によって統一的に生成される.
CREATE TABLE `sys_gen` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`table_name` varchar(32) NOT NULL COMMENT ' ',
`table_prefix` varchar(32) DEFAULT NULL COMMENT ' , ',
`module` varchar(32) NOT NULL COMMENT ' ',
`description` varchar(32) DEFAULT NULL COMMENT ' ',
`author` varchar(32) DEFAULT NULL COMMENT ' ',
`create_by` varchar(32) DEFAULT NULL COMMENT ' ',
`create_time` datetime DEFAULT NULL COMMENT ' ',
`update_by` varchar(32) DEFAULT NULL COMMENT ' ',
`update_time` datetime DEFAULT NULL COMMENT ' ',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' ';
以上が権限ベースのバックグラウンド管理ベーステーブルです.