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

FORRESTJUMP

[DUVIDA] Sistema Login

Recommended Posts

FORRESTJUMP

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.

Share this post


Link to post
Share on other sites
vitortomaz

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?

Share this post


Link to post
Share on other sites
Knitter

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.