mirror of
https://github.com/goharbor/harbor.git
synced 2024-09-06 11:08:11 +02:00
106 lines
2.7 KiB
SQL
106 lines
2.7 KiB
SQL
drop database if exists registry;
|
|
create database registry charset = utf8;
|
|
|
|
use registry;
|
|
|
|
create table access (
|
|
access_id int NOT NULL AUTO_INCREMENT,
|
|
access_code char(1),
|
|
comment varchar (30),
|
|
primary key (access_id)
|
|
);
|
|
|
|
insert into access values
|
|
( null, 'A', 'All access for the system'),
|
|
( null, 'M', 'Management access for project'),
|
|
( null, 'R', 'Read access for project'),
|
|
( null, 'W', 'Write access for project'),
|
|
( null, 'D', 'Delete access for project'),
|
|
( null, 'S', 'Search access for project');
|
|
|
|
|
|
create table role (
|
|
role_id int NOT NULL AUTO_INCREMENT,
|
|
role_code varchar(20),
|
|
name varchar (20),
|
|
primary key (role_id)
|
|
);
|
|
|
|
insert into role values
|
|
( null, 'AMDRWS', 'sysAdmin'),
|
|
( null, 'MDRWS', 'projectAdmin'),
|
|
( null, 'RWS', 'developer'),
|
|
( null, 'RS', 'guest');
|
|
|
|
|
|
create table user (
|
|
user_id int NOT NULL AUTO_INCREMENT,
|
|
username varchar(15),
|
|
email varchar(30),
|
|
password varchar(40) NOT NULL,
|
|
realname varchar (20) NOT NULL,
|
|
comment varchar (30),
|
|
deleted tinyint (1) DEFAULT 0 NOT NULL,
|
|
reset_uuid varchar(40) DEFAULT NULL,
|
|
salt varchar(40) DEFAULT NULL,
|
|
primary key (user_id),
|
|
UNIQUE (username),
|
|
UNIQUE (email)
|
|
);
|
|
|
|
insert into user values
|
|
(1, 'admin', 'admin@example.com', '', 'system admin', 'admin user',0, null, ''),
|
|
(2, 'anonymous', 'anonymous@example.com', '', 'anonymous user', 'anonymous user', 1, null, '');
|
|
|
|
create table project (
|
|
project_id int NOT NULL AUTO_INCREMENT,
|
|
owner_id int NOT NULL,
|
|
name varchar (30) NOT NULL,
|
|
creation_time timestamp,
|
|
deleted tinyint (1) DEFAULT 0 NOT NULL,
|
|
public tinyint (1) DEFAULT 0 NOT NULL,
|
|
primary key (project_id),
|
|
FOREIGN KEY (owner_id) REFERENCES user(user_id),
|
|
UNIQUE (name)
|
|
);
|
|
|
|
insert into project values
|
|
(null, 1, 'library', NOW(), 0, 1);
|
|
|
|
create table project_role (
|
|
pr_id int NOT NULL AUTO_INCREMENT,
|
|
project_id int NOT NULL,
|
|
role_id int NOT NULL,
|
|
primary key (pr_id),
|
|
FOREIGN KEY (role_id) REFERENCES role(role_id),
|
|
FOREIGN KEY (project_id) REFERENCES project (project_id)
|
|
);
|
|
|
|
insert into project_role values
|
|
( 1,1,1 );
|
|
|
|
create table user_project_role (
|
|
upr_id int NOT NULL AUTO_INCREMENT,
|
|
user_id int NOT NULL,
|
|
pr_id int NOT NULL,
|
|
primary key (upr_id),
|
|
FOREIGN KEY (user_id) REFERENCES user(user_id),
|
|
FOREIGN KEY (pr_id) REFERENCES project_role (pr_id)
|
|
);
|
|
|
|
insert into user_project_role values
|
|
( 1,1,1 );
|
|
|
|
create table access_log (
|
|
log_id int NOT NULL AUTO_INCREMENT,
|
|
user_id int NOT NULL,
|
|
project_id int NOT NULL,
|
|
repo_name varchar (40),
|
|
GUID varchar(64),
|
|
operation varchar(20) NOT NULL,
|
|
op_time timestamp,
|
|
primary key (log_id),
|
|
FOREIGN KEY (user_id) REFERENCES user(user_id),
|
|
FOREIGN KEY (project_id) REFERENCES project (project_id)
|
|
);
|