Ir para conteúdo

Arquivado

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

Francisco Assis

Bloqueio de acesso

Recommended Posts

Ola,

 

No Sql Server 2005 tenho 2 tipos de usuários, os desenvolvedores e a aplicação. Os desenvolvedores se conectam com Windows authentication e a aplicação se conectada com o usuário "aplicacao".

 

Mas, algum desenvolvedores estão se conectando com o usuário "aplicacao". Gostaria de negar o acesso ao banco para o usuário "aplicacao" quando o mesmo for utilizado por um desenvolvedor.

 

Poderiam me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer uma trigger de login.

 

http://technet.microsoft.com/en-us/library...98(SQL.90).aspx

 

A trigger é executada a cada login no banco de dados, e você pode negar um login que considerar inseguro.

 

Com a trigger, você poderá obter um XML contendo informações sobre o usuário que quer conectar, e talvez você consiga filtrar por alguma dessas informações. Com aplicações web, que originam suas conexões sempre do mesmo servidor, por exemplo, você pode bloquear pelo ClientHost, fixando o IP do servidor.

 

Você pode conseguir resultados bons impedindo o usuário "aplicacao" de fazer alterações na estrutura do banco de dados, liberando somente as operações necessárias (SELECT, INSERT, executar procedures, etc..)

 

http://msdn.microsoft.com/en-us/library/ms...65(SQL.90).aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que acessar o XML gerado pelo EVENTDATA() dentro da trigger. O link lá em cima explica tudo direitinho... se quiser algo em português pode usar isso:

 

http://sqlserver-brasil.blogspot.com/2008/...r-de-login.html

 

Também acabei de ver que é possível obter o nome da aplicação que conectou, você pode prender o login "aplicacao" à um determinado nome de aplicação... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado pela ajuda!

 

Mas surgiu outra duvida. Este tipo de trigger só existe no MsSql 2005, mas como isso poderia ser feito no 2000??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só 2005, e só com Service Pack2

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.