SQL Server EE: Restringindo o acesso a usuários que efetuam login através da ferramenta de gerenciamento de servidor da Microsoft [closed]

2

Temos um banco de dados no SQL Server Express Edition que é usado por um aplicativo de terceiros para armazenar dados. Quando os usuários fazem login por meio desse programa de terceiros, sua autenticação do Windows é usada e (suponho) que sua autenticação do Windows também seja passada para o banco de dados sql. Nós fornecemos aos usuários papéis públicos e do dbwriter para permitir que eles gravem no banco de dados. Se os removermos da função dbwriter, o aplicativo da terceira parte não poderá expor as consultas de que precisa.

O problema é que, atribuindo as funções de gravador de dados a nossos usuários, permitimos que você faça login por meio da ferramenta de gerenciamento de servidores e altere manualmente os dados. Não podemos permitir isso devido a nossas diretrizes de auditoria.

Idealmente, gostaria de fazer com que, quando um usuário está em uma determinada função, não consiga fazer login através do utilitário de gerenciamento do servidor para fazer alterações, no entanto, quando fizerem login através do software da terceira parte e fizerem as alterações exigidas pelo software da terceira parte. . A única solução que cheguei até agora é alterar o tipo de login para o login do banco de dados atribuído durante a criação do banco de dados quando alguém tenta efetuar login através do utilitário do servidor e usar a autenticação do Windows com o aplicativo de terceiros. Esta não é uma ótima solução e, portanto, porque estou aqui. Todas as idéias serão grandemente appericiadas!

Atenciosamente, Anand

    
por anand 23.03.2012 / 19:46

2 respostas

0

Embora possa ser que o aplicativo esteja transmitindo as credenciais do Windows do usuário final, talvez não seja assim. Inicie o SQL Profiler e veja qual nome de login está executando alterações de dados. Muitos aplicativos fazem o servidor de aplicativos manipular os dados em nome do usuário e, portanto, você pode ver essa conta executando a ação. Se não, usar uma função de aplicativo pode estar em ordem. Confira o link .

    
por 23.03.2012 / 21:26
0

Usar as Funções de aplicativos é a melhor maneira de fazer isso. Supondo que você esteja usando C #, aqui está algum código de amostra .

    
por 26.03.2012 / 15:46