sdlan/policy.sql
2026-02-28 15:52:30 +08:00

46 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,
`policy_id` int NOT NULL,
`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