43 lines
1.9 KiB
SQL
43 lines
1.9 KiB
SQL
CREATE TABLE `identity` (
|
|
`identity_id` int NOT NULL AUTO_INCREMENT,
|
|
`network_id` int NOT NULL,
|
|
`subject_type` enum('token','instance','user','service') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
`subject_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
`created_at` int NOT NULL DEFAULT '0',
|
|
`expired_at` int NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (`identity_id`),
|
|
UNIQUE KEY `uk_subject` (`network_id`,`subject_type`,`subject_id`),
|
|
KEY `idx_network_id` (`network_id`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE `identity_policy` (
|
|
`identity_id` int NOT NULL,
|
|
`policy_id` int NOT NULL,
|
|
PRIMARY KEY (`identity_id`,`policy_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE `policy` (
|
|
`policy_id` int NOT NULL AUTO_INCREMENT,
|
|
`network_id` int NOT NULL,
|
|
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
|
`created_at` int NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (`policy_id`),
|
|
KEY `idx_network_id` (`network_id`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|
|
|
CREATE TABLE `rule` (
|
|
`rule_id` int NOT NULL AUTO_INCREMENT,
|
|
`network_id` int NOT NULL,
|
|
`access_rule_id` int NOT NULL,
|
|
`src_policy_id` int NOT NULL,
|
|
`dst_policy_id` int NOT NULL,
|
|
`proto` tinyint NOT NULL,
|
|
`port` int NOT NULL,
|
|
`action` enum('allow','deny') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
|
|
`created_at` int NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (`rule_id`),
|
|
KEY `idx_src` (`src_policy_id`),
|
|
KEY `idx_network_id` (`network_id`),
|
|
KEY `idx_dst` (`dst_policy_id`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=85 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |