Controle de Usuarios

10 respostas
S

Pessoal, estou projetando um controle de usuários.
-Gostaria de controlar acesso a partes do sistema, telas e opções .
-Tenho também que controlar usuários de banco de dados. (MYSQL).

Teria alguma forma de utilizar a própria tabela de usuários do banco de dados MYSQL para controlar acesso a parte do sistema?
Exemplo. Crio uma tabela de permissões e nesta tabela um campo que referencia um usuário do banco de dados (chave estrangeira).

Na tabela de permissões configuro o que pode ser acessado(telas do sistema) por cada usuario do banco.

Desta forma creio que eu iria economizaria em tempo.
Alguém tem alguma dica?

10 Respostas

fnandos

Pode ser feito desse modo, mas vc teria que pegar o usuario ao efetuar o login para comparar isso com as permissões entende “where usuario.algo = ‘sei la’” vc esta fazendo isso numa aplicação web? Ai seria controlar isso na sessão. :roll:

furutani

Sim, tem como você guardar as permissões em banco de dados. Pesquise sobre o JAAS

S

Aplicação desktop.

Essta tabela de pemissões deve ser criado no mesmo SCHEMA da tabela users do mysql? ou no meu Schema default?

Mikhas

Aqui no meu trampo fuciona +/- assim… posso estar levemente errado em alguns pontos pois é o pessoal de banco de dados que cuida disso.

Existe uma tabela de Usuarios com informações gerais de cada usuario do banco de dados, uma tabela de perfis e uma tabela de funções.

Essas são as principais.

As associações são feitas da seguinte maneira:

  • Um usuario possui UM perfil;
  • Um perfil possui N funções.

Dessa maneira, eu associo um perfil predefinido a um usuario e no meu sistema eu dou permissão de acordo com as funções.

fnandos

Pode ser no seu schema, você vai ter que modelar ela pra sua aplicação e fazer mais ou menos como eu disse, pegar o id ou outro parâmetro no login e invocar as opções conforme o retorno de um select.

deniswsrosa

Bom… procure por segurança declarativa, isto vai lhe mostrar como deve ser feito o controle de acesso. o importante é jogar essa responsabilidade para o conteiner e não criar um filtro que verifica as permissões como é comum ver por aí. Procure tb por Tomcat Realm que irá entender o que estou falando.

fnandos

deniswsrosa, a aplicação do nosso companheiro é desktop.

Mikhas

Por que é melhor jogar a responsabilidade do controle para o container e não a um filtro.

No servicço eu uso Acegi + Spring e eu configuro o Acegi como um filtro.

deniswsrosa

ops… sorry :oops:

betoslayer

Onde eu trabalho o controle todo é feito pelo banco. Cada usuario da aplicacao é um usuario do banco, o usuario do banco tem os grants dos papeis(que sao as aplicacoes, pacotes e menus) aí ele pode logar em qualquer lugar q o banco vai controlar o acesso atraves dos grants que ele possuir, pois aqui toda a regra de negocio fica no banco(em procedures). É um controle de acesso bem mais robusto e seguro visto que utilizamos essa estrutura e nosso banco é o oracle.

Criado 8 de dezembro de 2008
Ultima resposta 8 de dez. de 2008
Respostas 10
Participantes 6