Temos uma situação em que os desenvolvedores não têm UPDATE
permissão, MAS trabalham com aplicativos e veem cadeias de conexão -> eles conhecem senhas de algumas contas SQL (exemplo SQLLogin1
) que possuem permissões UPDATE. Atualmente, nossas operações não são perfeitas e, às vezes, os dados de produção precisam ser modificados (nenhuma GUI para isso ainda).
Em vez de entrar em contato com o DBA e pedir para ele modificar os dados, o Desenvolvedor (indevidamente) usaria a conta SQL SQLLogin1
(que tem permissão para modificar os dados) e se conectaria pelo SQL Server Management Studio para modificar os dados.
O DBA não pode alterar a senha SQLLogin1
sem que o Developer veja a nova cadeia de conexão e a nova senha, pois a cadeia de conexão do aplicativo usada SQLLogin1
é mantida pelo Developer.
Questão:
Existe uma maneira de negar o acesso ao SQLLogin1
logon do SQL, mas apenas se ele estiver se conectando pelo SSMS?
Ao mesmo tempo, se SQLLogin1
estiver se conectando .Net SqlClient Data Provider
( program_name
no sys.dm_exec_sessions
), deve ser permitido o login.
Dessa forma, não queremos permitir que o Developer se conecte pelo SSMS usando SQLLogin1
, enquanto o aplicativo que estiver usando SQLLogin1
, ainda poderá se conectar.