added simple role and security tables

This commit is contained in:
Daniel Schick 2023-04-08 18:45:11 +02:00
parent a833863761
commit a3ccdf595e

View File

@ -170,3 +170,57 @@ CREATE TABLE `notification` (
) )
COMMENT='An entry corresponds to an alarm given by a violated rule during times update' COMMENT='An entry corresponds to an alarm given by a violated rule during times update'
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `role` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL DEFAULT '0' COMMENT 'unique role name',
`description` VARCHAR(255) NULL DEFAULT '0' COMMENT 'role description',
PRIMARY KEY (`id`),
UNIQUE INDEX `name` (`name`)
)
COMMENT='logical group of securables for one or more user'
DEFAULT CHARSET=utf8mb4
ENGINE=InnoDB
;
CREATE TABLE `securable` (
`id` INT(10) UNSIGNED NOT NULL,
`name` VARCHAR(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE INDEX `name` (`name`)
)
COMMENT='Actual permission on a single(!) feature or operation'
DEFAULT CHARSET=utf8mb4
ENGINE=InnoDB
;
CREATE TABLE `user_role_map` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT(10) UNSIGNED NOT NULL DEFAULT 0,
`role_id` INT(10) UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
INDEX `FK_USER_ROLE` (`user_id`),
INDEX `FK_ROLE_USER` (`role_id`),
CONSTRAINT `FK_ROLE_USER` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`),
CONSTRAINT `FK_USER_ROLE` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
)
COMMENT='Assigns a user to a role'
DEFAULT CHARSET=utf8mb4
ENGINE=InnoDB
;
CREATE TABLE `role_securable_map` (
`id` INT(10) UNSIGNED NOT NULL,
`role_id` INT(10) UNSIGNED NOT NULL,
`securable_id` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
INDEX `FK_ROLE_SECURABLE` (`role_id`),
INDEX `FK_SECURABLE_ROLE` (`securable_id`),
CONSTRAINT `FK_ROLE_SECURABLE` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`),
CONSTRAINT `FK_SECURABLE_ROLE` FOREIGN KEY (`securable_id`) REFERENCES `securable` (`id`)
)
COMMENT='Assigns securables to roles'
DEFAULT CHARSET=utf8mb4
ENGINE=InnoDB
;