Eu tenho um aplicativo para implantar na produção que usa a segurança do 'sistema de honra'. Ou seja, todos os usuários se conectam ao banco de dados usando uma credencial de usuário / senha do SQL e o aplicativo gerencia as próprias permissões. A última parte não me incomoda tanto quanto o fato de o objeto de conexão conter credenciais incorporadas e poder ser copiado livremente. Estou tentando encontrar uma maneira de limitar as conexões a um conjunto mais limitado de clientes. Eu posso criar regras de firewall para limitar por IP, é claro. Existe alguma maneira de 'pré-qualificar' logons SQL por conta de máquina ou associação ao domínio?
sql-server
sql-server-2012
security
Jeff Sacksteder
fonte
fonte
Respostas:
Você pode conseguir isso através de um gatilho de logon . No gatilho de logon, você pode ter a lógica para fazer as verificações necessárias que está procurando (como o nome da máquina). Infelizmente, não acredito que haja uma maneira de obter a participação no domínio do usuário se você estiver utilizando a autenticação do SQL Server.
Você pode usar a função EVENTDATA para verificar se é possível extrair outras informações para determinar se a conexão deve ou não ser permitida. Se você não deseja que esse logon específico seja bem-sucedido, basta testar e emitir condicionalmente a
ROLLBACK
.fonte
Como Thomas mencionou, isso pode ser feito usando o LOGON Trigger. Abaixo está o script que irá ajudá-lo
fonte
Host_Name()
é seguro e pode ser facilmente falsificado por praticamente qualquer pessoa. É particularmente fácil fazer isso no Excel. Você seria muito mais confiável para esse fim.@IPAddress