Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DionDu

Aplicação WEB x Login - Único usuário WEB ou Vários Usuários no Banco

Recommended Posts

Olá galera.

 

Tenho uma dúvida que me atormenta há séculos.

 

Tenho um sistema WEB acessados por mais de 90 mil usuário. Atualmente esta aplicação se conecta com o banco de dados usando um usuário web comum cadastrado no banco de dados que tem total permissão no banco. Os usuário do sistema são cadastrados em uma tabela no banco e a cada página acessada eu gravo em uma tabela de log o usuário que está logado no sistema e a página acessada, por meio de um simples insert dentro da página, ou seja, eu tenho no log as páginas acessada e não as operações SQL realizadas no banco de dados.

 

Estava pensando, no momento do cadastro do usuário na página WEB, cadastrar também um usuário no banco de dados para cada usuário cadastrado no sistema e quando o usuário logasse no sistema a conexão aberta com o banco seria aberta com o usuário cadastrado no banco, ou seja, cada usuário se conectaria com o banco de dados usando seu usuário específico. Dessa forma teríamos nos logs do banco o verdadeiro usuário que executou as querries e operações no banco e não apenas o log das páginas acessadas no banco.

 

Qual é a melhor solução, em termo de performance e possibilidades de log, cadastrar cada usuário como usuário do banco ou cadastrar um único usuário web que fará todas as conexões com o banco?

 

Obrigad

Compartilhar este post


Link para o post
Compartilhar em outros sites

DionDu,

Acho que você esta indo pelo caminho errado criando um usuario a cada cadastro. Imagina se seu banco tiver mais de 200 mil usuários cadastrados e destes somente 10 mil estiverem ativos? Seu sistema já começa com falha quando diz

Atualmente esta aplicação se conecta com o banco de dados usando um usuário web comum cadastrado no banco de dados que tem total permissão no banco

Um usuario para acesso ao banco tem que ter algumas permissões restritas.

Há outras maneiras de se "mapear" o que o usuário faz no sistema, como aplicação de Rules, Auditoria por exemplo.

Em todos os sistemas que faço manutenção e sou responsavel, tenho um unico usuario para aplicação com permissões definidas com a área de desenvolvimento. Se a aplicação precisa por exemplo, fazer uma exportação de dados, eu crio para ele um usuário somente para este tipo de tarefa, mas restringo ele a fazer update na base. São regras que podem ser aplicadas em SCHEMAS e RULES.

Comece lendo este link http://msdn.microsoft.com/PT-BR/library/ms189462.aspx

que com certeza vai lhe ajudar.

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falando de Servidor Local e Saindo do conceito de rastreabilidade...

Seria mais vantajoso eu ter 50 usuários no Sql Server (que sao os usuarios que acessam o sistema) ou ter apenas 1 no Sql Server que seria utilizado pelos 50 acessos?

Isso em questao de performance, nao sobrecarregaria esse unico usuario do banco, podendo degradar o tempo de resposta da minha consulta ou do meu processamento (que geralmente é pesado).

Obs: Vi que o topico e antigo mas me bateu essa duvida... (sql server 2014)

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Rando, temos duas coisas distintas:

Usuário que se conecta no SQLServer e faz as devidas alterações em dados

Usuário que acesso o sistema e faz as alterações via aplicação.

o usuário que se conecta no banco valida o que pode feito pela aplicação.

Há casos em que temos um usuário para cada aplicação e deste modo fica mais "fácil" rastrear o que esta sendo executado no SQLServer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.