• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

FORRESTJUMP

[DUVIDA] Sistema Login

3 mensagens neste tópico

Olá, venho aqui recorrer á vossa ajuda com muita esperança que consiga solucionar o meu problema.

Então é o seguinte, estou a desenvolver um sistema de apoio/gestão a tratamentos de residuos num determinado Laboratório, as tecnogias que estou a usar são JAVA e MYSQL

Nesse sistema existem vários tipos de ultilizadores:

Técnicos - Fazem Tratamentos,

Admin - Cria Utilizadores, Ve o Estado de Tratamento ..,

Alunos - Acrescentam apenas Tipos de Tratamento,

Gestor Stocks - Altera/Verifica os Stocks de Residuos, Reagentes, Produtos ...

Ou seja, cada tipo de Utilizador da aplicaçã deve ter um determinado conjuto de permiçoes sobre a estrutura de dados.

A conexão á base de dados é a seguinte:

dbconnection = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/" + getDbFileName(), // connect string
                    "root", // username
                    "root");// password

O que está errado, porque na verdade com o username root mesmo estando a password salvaguardada pela compilação da classe DAL ( Database Acess Layer), pode por em causa a segurança e garantia da Base de Dados, porque quem iria tratar disso seria a aplicação em Java e não o servidor Mysql.

Mas no entanto, poem-se outro problema, é o seguinte:

duvidamr3.jpg

Ou seja, as permiçoes dos utilizadores está dentro da minha base de dados, ou seja, para verificar se é ou não de um determinado tipo de utilizador tenho que entrar na base de dados com o user root ..

Agora pergunto e peço ajuda, será que esta arquitectura está correcta ?

Será que devo criar uma base de dados paralela a esta só com os ultilizadores? Mas eu preciso de saber qual é o funcionario qu está a fazer o tratamento.

Alguem tem alguma experiencia que possa partilhar cmg, sobre uma arquitectura de algo semelhante ?

Este é o meu primeiro sistema a nivel real correu tudo bem até aqui .. mas agr estou perdido :s

Peço por isso a vossa ajuda, agradeço imenso se me poderem dispensar algum tempo :P

Aproveito para desejar a todos, umas optimas férias e umas boas entradas em 2009.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

dá uma vista de olhos no modelo RBAC, uma arquitectura baseada em grupos de permissões e utilizadores é mais fácil de manter.... no entanto

podes criar um database user com permissões só de leitura para fazeres essa verificação de login

tens também que pensar em questões talvez mais importantes do género, estás a guardar as password em claro ou o hash das mesmas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Colocar os dados de autenticação na BD não é problemático, o que terás de fazer é criar um utilizador no MySQL apenas com as permissões necessárias para que a aplicação funcione. Naturalmente, a conta de root é uma conta que não deves usar.

Crias uma conta com permissões especificas apenas na BD que vais usar e não no servidor todo, desta forma essa conta poderá apenas mexer numa base de dados e não tem acesso a outras que existam no mesmo servidor. O uso de hashs pode ajudar a que não seja possível identificar as passwords caso alguém tenha acesso ao servidor, embora não o impeça completamente.

O tipo e nível de segurança dependerá muito da aplicação, suponho que estejas a desenvolver uma aplicação desktop sem recurso a servidor aplicacional, nesse caso a segurança terá de ser toda implementada por ti, mas tens de ver até que ponto se justifica estares a complicar demasiado com a questão.

Resumindo, crias as tabelas necessárias para o teu esquema de permissões, pelo diagrama que apresentaste parece faltar uma tabela para os grupos, de forma a identificares os grupos a que pertence cada utilizador, e crias um utilizador com permissões na BD, mas apenas com as permissões necessárias, por exemplo, se não precisa de criar tabelas novas então não lhe dás permissões para criar tabelas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora