security-admin/db/mysql/patches/067-create-gds-tables.sql (193 lines of code) (raw):

-- Licensed to the Apache Software Foundation (ASF) under one or more -- contributor license agreements. See the NOTICE file distributed with -- this work for additional information regarding copyright ownership. -- The ASF licenses this file to You under the Apache License, Version 2.0 -- (the "License"); you may not use this file except in compliance with -- the License. You may obtain a copy of the License at -- -- http://www.apache.org/licenses/LICENSE-2.0 -- -- Unless required by applicable law or agreed to in writing, software -- distributed under the License is distributed on an "AS IS" BASIS, -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -- See the License for the specific language governing permissions and -- limitations under the License. DROP TABLE IF EXISTS `x_gds_dataset_policy_map`; DROP TABLE IF EXISTS `x_gds_project_policy_map`; DROP TABLE IF EXISTS `x_gds_dataset_in_project`; DROP TABLE IF EXISTS `x_gds_data_share_in_dataset`; DROP TABLE IF EXISTS `x_gds_shared_resource`; DROP TABLE IF EXISTS `x_gds_data_share`; DROP TABLE IF EXISTS `x_gds_dataset`; DROP TABLE IF EXISTS `x_gds_project`; CREATE TABLE `x_gds_dataset` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT , `guid` VARCHAR(64) NOT NULL , `create_time` TIMESTAMP NULL DEFAULT NULL , `update_time` TIMESTAMP NULL DEFAULT NULL , `added_by_id` BIGINT(20) NULL DEFAULT NULL , `upd_by_id` BIGINT(20) NULL DEFAULT NULL , `version` BIGINT(20) NOT NULL DEFAULT 1 , `is_enabled` TINYINT(1) NOT NULL DEFAULT '1' , `name` VARCHAR(512) NOT NULL , `description` TEXT NULL DEFAULT NULL , `acl` TEXT NULL DEFAULT NULL , `terms_of_use` TEXT NULL DEFAULT NULL , `options` TEXT NULL DEFAULT NULL , `additional_info` TEXT NULL DEFAULT NULL , PRIMARY KEY(`id`) , UNIQUE KEY `x_gds_dataset_UK_name`(`name`) , CONSTRAINT `x_gds_dataset_FK_added_by_id` FOREIGN KEY(`added_by_id`) REFERENCES `x_portal_user`(`id`) , CONSTRAINT `x_gds_dataset_FK_upd_by_id` FOREIGN KEY(`upd_by_id`) REFERENCES `x_portal_user`(`id`) ); CREATE INDEX `x_gds_dataset_guid` ON `x_gds_dataset`(`guid`); CREATE TABLE `x_gds_project` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT , `guid` VARCHAR(64) NOT NULL , `create_time` TIMESTAMP NULL DEFAULT NULL , `update_time` TIMESTAMP NULL DEFAULT NULL , `added_by_id` BIGINT(20) NULL DEFAULT NULL , `upd_by_id` BIGINT(20) NULL DEFAULT NULL , `version` BIGINT(20) NOT NULL DEFAULT 1 , `is_enabled` TINYINT(1) NOT NULL DEFAULT '1' , `name` VARCHAR(512) NOT NULL , `description` TEXT NULL DEFAULT NULL , `acl` TEXT NULL DEFAULT NULL , `terms_of_use` TEXT NULL DEFAULT NULL , `options` TEXT NULL DEFAULT NULL , `additional_info` TEXT NULL DEFAULT NULL , PRIMARY KEY(`id`) , UNIQUE KEY `x_gds_project_UK_name`(`name`) , CONSTRAINT `x_gds_project_FK_added_by_id` FOREIGN KEY(`added_by_id`) REFERENCES `x_portal_user`(`id`) , CONSTRAINT `x_gds_project_FK_upd_by_id` FOREIGN KEY(`upd_by_id`) REFERENCES `x_portal_user`(`id`) ); CREATE INDEX `x_gds_project_guid` ON `x_gds_project`(`guid`); CREATE TABLE `x_gds_data_share`( `id` BIGINT(20) NOT NULL AUTO_INCREMENT , `guid` VARCHAR(64) NOT NULL , `create_time` TIMESTAMP NULL DEFAULT NULL , `update_time` TIMESTAMP NULL DEFAULT NULL , `added_by_id` BIGINT(20) NULL DEFAULT NULL , `upd_by_id` BIGINT(20) NULL DEFAULT NULL , `version` BIGINT(20) NOT NULL DEFAULT 1 , `is_enabled` TINYINT(1) NOT NULL DEFAULT '1' , `name` VARCHAR(512) NOT NULL , `description` TEXT NULL DEFAULT NULL , `acl` TEXT NOT NULL , `service_id` BIGINT(20) NOT NULL , `zone_id` BIGINT(20) NOT NULL , `condition_expr` TEXT NULL , `default_access_types` TEXT NULL , `default_tag_masks` TEXT NULL , `terms_of_use` TEXT NULL DEFAULT NULL , `options` TEXT NULL DEFAULT NULL , `additional_info` TEXT NULL DEFAULT NULL , PRIMARY KEY(`id`) , UNIQUE KEY `x_gds_data_share_UK_name`(`service_id`, `zone_id`, `name`) , CONSTRAINT `x_gds_data_share_FK_added_by_id` FOREIGN KEY(`added_by_id`) REFERENCES `x_portal_user`(`id`) , CONSTRAINT `x_gds_data_share_FK_upd_by_id` FOREIGN KEY(`upd_by_id`) REFERENCES `x_portal_user`(`id`) , CONSTRAINT `x_gds_data_share_FK_service_id` FOREIGN KEY(`service_id`) REFERENCES `x_service`(`id`) , CONSTRAINT `x_gds_data_share_FK_zone_id` FOREIGN KEY(`zone_id`) REFERENCES `x_security_zone`(`id`) ); CREATE INDEX `x_gds_data_share_guid` ON `x_gds_data_share`(`guid`); CREATE INDEX `x_gds_data_share_service_id` ON `x_gds_data_share`(`service_id`); CREATE INDEX `x_gds_data_share_zone_id` ON `x_gds_data_share`(`zone_id`); CREATE TABLE `x_gds_shared_resource`( `id` BIGINT(20) NOT NULL AUTO_INCREMENT , `guid` VARCHAR(64) NOT NULL , `create_time` TIMESTAMP NULL DEFAULT NULL , `update_time` TIMESTAMP NULL DEFAULT NULL , `added_by_id` BIGINT(20) NULL DEFAULT NULL , `upd_by_id` BIGINT(20) NULL DEFAULT NULL , `version` BIGINT(20) NOT NULL DEFAULT 1 , `is_enabled` TINYINT(1) NOT NULL DEFAULT '1' , `name` VARCHAR(512) NOT NULL , `description` TEXT NULL DEFAULT NULL , `data_share_id` BIGINT(20) NOT NULL , `resource` TEXT NOT NULL , `resource_signature` VARCHAR(128) NOT NULL , `sub_resource` TEXT NULL DEFAULT NULL , `sub_resource_type` TEXT NULL DEFAULT NULL , `condition_expr` TEXT NULL DEFAULT NULL , `access_types` TEXT NULL DEFAULT NULL , `row_filter` TEXT NULL DEFAULT NULL , `sub_resource_masks` TEXT NULL DEFAULT NULL , `profiles` TEXT NULL DEFAULT NULL , `options` TEXT NULL DEFAULT NULL , `additional_info` TEXT NULL DEFAULT NULL , PRIMARY KEY(`id`) , UNIQUE KEY `x_gds_shared_resource_UK_name`(`data_share_id`, `name`) , UNIQUE KEY `x_gds_shared_resource_UK_resource_signature`(`data_share_id`, `resource_signature`) , CONSTRAINT `x_gds_shared_resource_FK_added_by_id` FOREIGN KEY(`added_by_id`) REFERENCES `x_portal_user`(`id`) , CONSTRAINT `x_gds_shared_resource_FK_upd_by_id` FOREIGN KEY(`upd_by_id`) REFERENCES `x_portal_user`(`id`) , CONSTRAINT `x_gds_shared_resource_FK_data_share_id` FOREIGN KEY(`data_share_id`) REFERENCES `x_gds_data_share`(`id`) ); CREATE INDEX `x_gds_shared_resource_guid` ON `x_gds_shared_resource`(`guid`); CREATE INDEX `x_gds_shared_resource_data_share_id` ON `x_gds_shared_resource`(`data_share_id`); CREATE TABLE `x_gds_data_share_in_dataset`( `id` BIGINT(20) NOT NULL AUTO_INCREMENT , `guid` VARCHAR(64) NOT NULL , `create_time` TIMESTAMP NULL DEFAULT NULL , `update_time` TIMESTAMP NULL DEFAULT NULL , `added_by_id` BIGINT(20) NULL DEFAULT NULL , `upd_by_id` BIGINT(20) NULL DEFAULT NULL , `version` BIGINT(20) NOT NULL DEFAULT 1 , `is_enabled` TINYINT(1) NOT NULL DEFAULT '1' , `description` TEXT NULL DEFAULT NULL , `data_share_id` BIGINT(20) NOT NULL , `dataset_id` BIGINT(20) NOT NULL , `status` SMALLINT NOT NULL , `validity_period` TEXT NULL DEFAULT NULL , `profiles` TEXT NULL DEFAULT NULL , `options` TEXT NULL DEFAULT NULL , `additional_info` TEXT NULL DEFAULT NULL , `approver_id` BIGINT(20) NULL DEFAULT NULL , PRIMARY KEY(`id`) , UNIQUE KEY `x_gds_dshid_UK_data_share_id_dataset_id` (`data_share_id`, `dataset_id`) , CONSTRAINT `x_gds_dshid_FK_added_by_id` FOREIGN KEY(`added_by_id`) REFERENCES `x_portal_user`(`id`) , CONSTRAINT `x_gds_dshid_FK_upd_by_id` FOREIGN KEY(`upd_by_id`) REFERENCES `x_portal_user`(`id`) , CONSTRAINT `x_gds_dshid_FK_data_share_id` FOREIGN KEY(`data_share_id`) REFERENCES `x_gds_data_share`(`id`) , CONSTRAINT `x_gds_dshid_FK_dataset_id` FOREIGN KEY(`dataset_id`) REFERENCES `x_gds_dataset`(`id`) , CONSTRAINT `x_gds_dshid_FK_approver_id` FOREIGN KEY(`approver_id`) REFERENCES `x_portal_user`(`id`) ); CREATE INDEX `x_gds_dshid_guid` ON `x_gds_data_share_in_dataset`(`guid`); CREATE INDEX `x_gds_dshid_data_share_id` ON `x_gds_data_share_in_dataset`(`data_share_id`); CREATE INDEX `x_gds_dshid_dataset_id` ON `x_gds_data_share_in_dataset`(`dataset_id`); CREATE INDEX `x_gds_dshid_data_share_id_dataset_id` ON `x_gds_data_share_in_dataset`(`data_share_id`, `dataset_id`); CREATE TABLE `x_gds_dataset_in_project`( `id` BIGINT(20) NOT NULL AUTO_INCREMENT , `guid` VARCHAR(64) NOT NULL , `create_time` TIMESTAMP NULL DEFAULT NULL , `update_time` TIMESTAMP NULL DEFAULT NULL , `added_by_id` BIGINT(20) NULL DEFAULT NULL , `upd_by_id` BIGINT(20) NULL DEFAULT NULL , `version` BIGINT(20) NOT NULL DEFAULT 1 , `is_enabled` TINYINT(1) NOT NULL DEFAULT '1' , `description` TEXT NULL DEFAULT NULL , `dataset_id` BIGINT(20) NOT NULL , `project_id` BIGINT(20) NOT NULL , `status` SMALLINT NOT NULL , `validity_period` TEXT NULL DEFAULT NULL , `profiles` TEXT NULL DEFAULT NULL , `options` TEXT NULL DEFAULT NULL , `additional_info` TEXT NULL DEFAULT NULL , `approver_id` BIGINT(20) NULL DEFAULT NULL , PRIMARY KEY(`id`) , UNIQUE KEY `x_gds_dip_UK_data_share_id_dataset_id`(`dataset_id`, `project_id`) , CONSTRAINT `x_gds_dip_FK_added_by_id` FOREIGN KEY(`added_by_id`) REFERENCES `x_portal_user`(`id`) , CONSTRAINT `x_gds_dip_FK_upd_by_id` FOREIGN KEY(`upd_by_id`) REFERENCES `x_portal_user`(`id`) , CONSTRAINT `x_gds_dip_FK_dataset_id` FOREIGN KEY(`dataset_id`) REFERENCES `x_gds_dataset`(`id`) , CONSTRAINT `x_gds_dip_FK_project_id` FOREIGN KEY(`project_id`) REFERENCES `x_gds_project`(`id`) , CONSTRAINT `x_gds_dip_FK_approver_id` FOREIGN KEY(`approver_id`) REFERENCES `x_portal_user`(`id`) ); CREATE INDEX `x_gds_dip_guid` ON `x_gds_dataset_in_project`(`guid`); CREATE INDEX `x_gds_dip_dataset_id` ON `x_gds_dataset_in_project`(`dataset_id`); CREATE INDEX `x_gds_dip_project_id` ON `x_gds_dataset_in_project`(`project_id`); CREATE TABLE `x_gds_dataset_policy_map`( `id` BIGINT(20) NOT NULL AUTO_INCREMENT , `dataset_id` BIGINT(20) NOT NULL , `policy_id` BIGINT(20) NOT NULL , PRIMARY KEY(`id`) , UNIQUE KEY `x_gds_dpm_UK_dataset_id_policy_id`(`dataset_id`, `policy_id`) , CONSTRAINT `x_gds_dpm_FK_dataset_id` FOREIGN KEY(`dataset_id`) REFERENCES `x_gds_dataset`(`id`) , CONSTRAINT `x_gds_dpm_FK_policy_id` FOREIGN KEY(`policy_id`) REFERENCES `x_policy`(`id`) ); CREATE INDEX `x_gds_dpm_dataset_id` ON `x_gds_dataset_policy_map`(`dataset_id`); CREATE INDEX `x_gds_dpm_policy_id` ON `x_gds_dataset_policy_map`(`policy_id`); CREATE TABLE `x_gds_project_policy_map`( `id` BIGINT(20) NOT NULL AUTO_INCREMENT , `project_id` BIGINT(20) NOT NULL , `policy_id` BIGINT(20) NOT NULL , PRIMARY KEY(`id`) , UNIQUE KEY `x_gds_ppm_UK_project_id_policy_id`(`project_id`, `policy_id`) , CONSTRAINT `x_gds_ppm_FK_project_id` FOREIGN KEY(`project_id`) REFERENCES `x_gds_project`(`id`) , CONSTRAINT `x_gds_ppm_FK_policy_id` FOREIGN KEY(`policy_id`) REFERENCES `x_policy`(`id`) ); CREATE INDEX `x_gds_ppm_project_id` ON `x_gds_project_policy_map`(`project_id`); CREATE INDEX `x_gds_ppm_policy_id` ON `x_gds_project_policy_map`(`policy_id`);