Re: [pgbr-geral] Sistema de Login para site de Intranet
M tiago gomes tiagotecno...@gmail.com escreveu: Obrigado Vinicius P., José C., Tiago A., Andre F. e JotaC., valeu pela ajuda, não sabia que este fórum era tão sério e que os usuários fossem tão interessados à divulgar o postgres. Bom alguns me perguntaram como seria este site que quero fazer, pois bem ele é assim: * *É um site intranet com controle de acesso de usuários de internet via rádio. (Com aproximadamente 290 usuários) *Terá somente 2 níveis de acesso (Admin e Usuario) no qual o Admin poderá cadastrar, excluir e editar novos Usuários. *Os Usuários terão acesso à net mas poderão ser bloqueados pelo número MAC ou IP. *Cada vez que o usuário se logar um relatório será criado mostrando a hora e data que se logou, o n° MAC ou IP, talvez a hora que efetuou logout, e claro o nome do usuário que se logou. *Ao estar logado, o usuário terá uma mensagem de boas vindas com seu nome, a hora e data. (ex: Bom Dia José, 05-11-2009) * O Usuário terá a Opção de fazer a mudança de senha e login. *( E o que eu acho mais dificil) O Administrador poderá enviar mensagens para um usuário em especial.(Como um popup (para informar pendências de pagamento ou datas comemorativas) * O Administrador poderá bloquear o acesso de algum Usuário.* **O Usuário Só poderá ter acesso à internet se estiver logado. (Este item não é tão importante no meu caso)* Em 20 de março de 2010 16:15, JotaComm jota.c...@gmail.com escreveu: Olá, Em 20 de março de 2010 01:26, tiago gomes tiagotecno...@gmail.comescreveu: Olá pessoal, Sou novo no Postgres e quero saber como se faz um sistema de login com níveis de acesso para um site intranet. Bem vindo ao PostgreSQL, você não vai se arrepender :) Sob o meu ponto de vista, o sistema de login e controle de acesso depende muito de qual é a regra de negócios e o que vai estar envolvido. Os usuários do sistema estarão mapeados em alguma tabela de usuário do banco? Vai ser um usuário padrão para todos os usuários? Os usuários terão níveis de permissão diferentes? Existe algum grupo de usuários que terão certos privilégios? Deixo a dica de não usar um superusuário para fazer as conexões entre o BD e a aplicação, use sempre um usuário regular (usuário que não é um superusuário). Também existe a questão se você vai deixar a regra de negócios dentro da aplicação ou dentro do BD? Acho que esta pergunta é interessante ser respondida já no começo, e sem meio termo, uma metade na aplicação e outra metade no BD. Você vai ter uma Eu sei faser em MySQL mas quero entrar no mundo Postgres. Desde já Obrigado. -- tiagotecno...@globo.com Tiago Gomes de Oliveira Designer Gráfico (62)81252423 Uruaçu - GO ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Tiago Gomes de Oliveira Designer Gráfico (62)81252423 Uruaçu - GO ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sistema de Login para site de Intranet
Seria algo assim: select id, nome, cargo, array_to_string(array(select id_papel from usuarios_papeis where id_usuario=u.id),':') as papeis from usuarios u where id=10 Em 20 de março de 2010 01:44, vinicius perroni vinicius...@gmail.com escreveu: Geralmente eu crio um esquema seguranca com três tabelas usuarios papeis usuarios_papeis usuarios com usuario senha mais outros campos dependendo do caso por ex. cargo data de nasc. Nos papeis eu cadastro uma string e o id do papel algo assim id_papel, papel Já na tabela usuarios_papeis eu cadastro cod_papel, cod_usuario Depois uso duas querys primeiro pego o usuario e depois os papeis daquele usuario no trabalho um colega fez uma funçao que retorna varios campos em um ai n precisa da segunda query para os papeis é tipo retorna os papeis em um campo separado por ponto e virgula mas eu já n sei fazer hehehe Espero ter colaborado. Att, Vinicius Perroni ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sistema de Login para site de Intranet
Em 20 de março de 2010 01:26, tiago gomes tiagotecno...@gmail.com escreveu: Olá pessoal, Sou novo no Postgres e quero saber como se faz um sistema de login com níveis de acesso para um site intranet. Eu sei faser em MySQL mas quero entrar no mundo Postgres. A lógica do *negócio* (entenda aqui as estruturas de controle necessárias ao funcionamento) não muda, seja qual for o banco de dados que você utilize. Esta lógica fica dentro da sua aplicação ou site - do programa, enfim. Agora, se o que você deseja é criar um nível de segurança bem maior criando um usuário de banco de dados para cada conta de usuário do seu sistema, a implementação ficará bem maior e dependerá do uso de comandos do PostgreSQL, bem como comandos SQL GRANT, REVOKE e outros. No tocante à segurança da informação, talvez esta seja a implementação mais segura possível, porém você precisaria catalogar todas as tabelas do seu sistema e definir níveis de acesso conforme grupos ou outro fator de agrupamento, para então aplicar as restrições de acesso através do programa (mesmo porque manualmente isto seria extremamente trabalhoso). Como programador e analista já trabalhei em diversos projetos, e o que eu mais vi foram usuários de banco para cada aplicação ou sistema que faz o acesso ao banco de dados, e não um usuário para cada conta de login. Apesar desta segunda abordagem não ser impossível, com certeza é mais trabalhosa, e demanda muito projeto antes de começar a implementação para evitar transtornos no futuro. -- TIAGO J. ADAMI http://www.adamiworks.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sistema de Login para site de Intranet
Em 20 de março de 2010 01:26, tiago gomes tiagotecno...@gmail.comescreveu: Olá pessoal, Sou novo no Postgres e quero saber como se faz um sistema de login com níveis de acesso para um site intranet. Eu sei faser em MySQL mas quero entrar no mundo Postgres. Conforme já foi mencionado anteriormente, a regra do negócio não se altera. Como não informaste detalhes de sua implementação em MySQL, fica difícil dizer qual a melhor forma de migrar a mesma para postgresql. Vou falar de modelos de login que já usei e talvez sejam de alguma ajuda para ti. 1) se tiveres o controle do que o usuário pode fazer pelo aplicativo (usando o banco apenas para verificar a senha e o login), bastaria uma tabela de login Tabela: login campos: login varchar(20) pk, senha varchar(32) ou bytea ou ... - depende de como guardarás tua senha demais dados relativos a teu site... (email, nome, etc...) 2) se tiveres o controle do que o usuário pode fazer pelo grupo ao qual ele pertence (ou papel, role), poderias ter duas ou três tabelas. O modelo com duas tabelas é para o caso de um usuário somente poder pertencer a um grupo Tabela: grupo campos: id serial pk, nome varchar(40) Tabela: login campos: login varchar(20) pk, senha varchar(32) ou bytea ou ... - depende de como guardarás tua senha grupo_id integer fk, demais dados relativos a teu site... (email, nome, etc...) O modelo com três tabelas seria para o caso de teres a possibilidade de um usuário pertencer a dois ou mais grupos (exemplo, usuário P é administrador e também é vendedor). Neste caso precisas descobrir o que fazer quando houver sobreposição de privilégios, se algum recurso é permitido para um deles apenas (por exemplo, área de vendas é permitida ao vendedor mas não para o administrador), precisas ver se teu sistema será otimista (dá a permissão se pelo menos um deles tiver, no exemplo o usuário P veria) ou se será pessimista (no exemplo, usuário P não veria). Tabela: grupo campos: id serial pk, nome varchar(40) Tabela: login campos: login varchar(20) pk, senha varchar(32) ou bytea ou ... - depende de como guardarás tua senha demais dados relativos a teu site... (email, nome, etc...) Tabela: grupo_login campos: grupo_id integer pk, login_login varchar(20) pk 3) se teu banco de dados também guardar as ações possíveis (recursos e ações referentes a esses recursos), nesse caso precisarás de mais tabelas. Vou mostrar apenas um modelo simplificado no qual cada usuário pertença a apenas um grupo, podes expandir como desejares: Tabela: grupo campos: id serial pk, nome varchar(40) Tabela: login campos: login varchar(20) pk, senha varchar(32) ou bytea ou ... - depende de como guardarás tua senha grupo_id integer fk, demais dados relativos a teu site... (email, nome, etc...) Tabela: recursos -- nesta tabela terias, por exemplo, login, fóruns, recursos humanos, etc... campos:id serial, nome varchar(80) Tabela: acoes -- nesta tabela terias, por exemplo, leitura, escrita, administração, etc... Sao as acoes associadas a um recurso campos: id serial, nome varchar(40) Tabelas acoes_recursos_grupo -- aqui da a cada grupo permissao a uma acao em um determinado recurso do site, por exemplo, dar permissao de alterar no recurso endereço de cliente para o administrador -- se nao houver registro nesta tabela para uma associacao acoes recursos grupo, entao não tem permissão campos: acoes_id integer pk recursos_id integer pk grupo_id integer pk Nota, são exemplos de modelagens de login usando um banco de dados (tipos são do postgreSQL, mas podem ser convertidos facilmente para outros bancos de dados). Lembre-se há muitas formas de se fazer isso. Atenciosamente, Desde já Obrigado. -- tiagotecno...@globo.com Tiago Gomes de Oliveira Designer Gráfico (62)81252423 Uruaçu - GO ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- André de Camargo Fernandes ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sistema de Login para site de Intranet
Olá, Em 20 de março de 2010 01:26, tiago gomes tiagotecno...@gmail.comescreveu: Olá pessoal, Sou novo no Postgres e quero saber como se faz um sistema de login com níveis de acesso para um site intranet. Bem vindo ao PostgreSQL, você não vai se arrepender :) Sob o meu ponto de vista, o sistema de login e controle de acesso depende muito de qual é a regra de negócios e o que vai estar envolvido. Os usuários do sistema estarão mapeados em alguma tabela de usuário do banco? Vai ser um usuário padrão para todos os usuários? Os usuários terão níveis de permissão diferentes? Existe algum grupo de usuários que terão certos privilégios? Deixo a dica de não usar um superusuário para fazer as conexões entre o BD e a aplicação, use sempre um usuário regular (usuário que não é um superusuário). Também existe a questão se você vai deixar a regra de negócios dentro da aplicação ou dentro do BD? Acho que esta pergunta é interessante ser respondida já no começo, e sem meio termo, uma metade na aplicação e outra metade no BD. Você vai ter uma Eu sei faser em MySQL mas quero entrar no mundo Postgres. Desde já Obrigado. -- tiagotecno...@globo.com Tiago Gomes de Oliveira Designer Gráfico (62)81252423 Uruaçu - GO ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sistema de Login para site de Intranet
Obrigado Vinicius P., José C., Tiago A., Andre F. e JotaC., valeu pela ajuda, não sabia que este fórum era tão sério e que os usuários fossem tão interessados à divulgar o postgres. Bom alguns me perguntaram como seria este site que quero fazer, pois bem ele é assim: * *É um site intranet com controle de acesso de usuários de internet via rádio. (Com aproximadamente 290 usuários) *Terá somente 2 níveis de acesso (Admin e Usuario) no qual o Admin poderá cadastrar, excluir e editar novos Usuários. *Os Usuários terão acesso à net mas poderão ser bloqueados pelo número MAC ou IP. *Cada vez que o usuário se logar um relatório será criado mostrando a hora e data que se logou, o n° MAC ou IP, talvez a hora que efetuou logout, e claro o nome do usuário que se logou. *Ao estar logado, o usuário terá uma mensagem de boas vindas com seu nome, a hora e data. (ex: Bom Dia José, 05-11-2009) * O Usuário terá a Opção de fazer a mudança de senha e login. *( E o que eu acho mais dificil) O Administrador poderá enviar mensagens para um usuário em especial.(Como um popup (para informar pendências de pagamento ou datas comemorativas) * O Administrador poderá bloquear o acesso de algum Usuário.* **O Usuário Só poderá ter acesso à internet se estiver logado. (Este item não é tão importante no meu caso)* Em 20 de março de 2010 16:15, JotaComm jota.c...@gmail.com escreveu: Olá, Em 20 de março de 2010 01:26, tiago gomes tiagotecno...@gmail.comescreveu: Olá pessoal, Sou novo no Postgres e quero saber como se faz um sistema de login com níveis de acesso para um site intranet. Bem vindo ao PostgreSQL, você não vai se arrepender :) Sob o meu ponto de vista, o sistema de login e controle de acesso depende muito de qual é a regra de negócios e o que vai estar envolvido. Os usuários do sistema estarão mapeados em alguma tabela de usuário do banco? Vai ser um usuário padrão para todos os usuários? Os usuários terão níveis de permissão diferentes? Existe algum grupo de usuários que terão certos privilégios? Deixo a dica de não usar um superusuário para fazer as conexões entre o BD e a aplicação, use sempre um usuário regular (usuário que não é um superusuário). Também existe a questão se você vai deixar a regra de negócios dentro da aplicação ou dentro do BD? Acho que esta pergunta é interessante ser respondida já no começo, e sem meio termo, uma metade na aplicação e outra metade no BD. Você vai ter uma Eu sei faser em MySQL mas quero entrar no mundo Postgres. Desde já Obrigado. -- tiagotecno...@globo.com Tiago Gomes de Oliveira Designer Gráfico (62)81252423 Uruaçu - GO ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Tiago Gomes de Oliveira Designer Gráfico (62)81252423 Uruaçu - GO ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Sistema de Login para site de Intranet
Olá pessoal, Sou novo no Postgres e quero saber como se faz um sistema de login com níveis de acesso para um site intranet. Eu sei faser em MySQL mas quero entrar no mundo Postgres. Desde já Obrigado. -- tiagotecno...@globo.com Tiago Gomes de Oliveira Designer Gráfico (62)81252423 Uruaçu - GO ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sistema de Login para site de Intranet
Geralmente eu crio um esquema seguranca com três tabelas usuarios papeis usuarios_papeis usuarios com usuario senha mais outros campos dependendo do caso por ex. cargo data de nasc. Nos papeis eu cadastro uma string e o id do papel algo assim id_papel, papel Já na tabela usuarios_papeis eu cadastro cod_papel, cod_usuario Depois uso duas querys primeiro pego o usuario e depois os papeis daquele usuario no trabalho um colega fez uma funçao que retorna varios campos em um ai n precisa da segunda query para os papeis é tipo retorna os papeis em um campo separado por ponto e virgula mas eu já n sei fazer hehehe Espero ter colaborado. Att, Vinicius Perroni ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral