3
respostas

Controle de acesso - Banco de dados

Caso eu adicione essas maneiras para ter controle de acesso, igual foi mostrado nas duas aulas de "Saber mais". A minha dúvida fica quanto ao banco de dados na hora de cadastrar um novo usuário? porque até então lá eu só tenho o campo Login e Senha e não possuo o campo do papel do usuário (ROLE)

3 respostas

Bom dia Gustavo,

Dependendo de como você vai querer fazer, um exemplo simples seria criar duas tabelas.

Tabela role

CREATE TABLE tb_role(
    role_id uuid PRIMARY KEY,
    role_name character varying(255) UNIQUE NOT NULL
)

e a tabela users_roles, assim fazendo o vinculo do usuario com a role

CREATE TABLE tb_users_roles
(
    user_id uuid NOT NULL,
    role_id uuid NOT NULL,
    CONSTRAINT fk_tb_role FOREIGN KEY (role_id)
        REFERENCES tb_role (role_id),
    CONSTRAINT fk_tb_user FOREIGN KEY (user_id)
        REFERENCES tb_user (user_id)
)

Exemplo de insert

INSERT INTO tb_users_roles(
    user_id, role_id)
    VALUES ('9f31216-1811-4621-9ba1-6c7af609ff04', 'a4033f81-db39-232-b137-9875815ff98');

Sobre as roles, como seria o preenchimento da tabela roles ? 01 | ADMIN

Algo assim? e como indico pro spring isso?

Nesse caso você vão precisar fazer um CRUD de usuários, que no cadastro recebe o login e perfil da pessoa.

E o código do projeto terá que ser alterado para ter uma classe que representa o perfil, alpem do banco de dados também ter uma tabela para o relacionamento muito-para-muitos entre usuário e perfil.